diff options
author | scottl <scottl@FreeBSD.org> | 2014-01-02 01:51:54 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2014-01-02 01:51:54 +0000 |
commit | e03e146ca12bca5391db40352403862016385e6c (patch) | |
tree | 6cc4d93696808af4b7417fc9b52f6c6142c9813a /sys/net/ieee8023ad_lacp.c | |
parent | cbabeda6695b7f6d82b13bdb27960b68b9357554 (diff) | |
download | FreeBSD-src-e03e146ca12bca5391db40352403862016385e6c.zip FreeBSD-src-e03e146ca12bca5391db40352403862016385e6c.tar.gz |
MFC r260070
Multi-queue NIC drivers and multi-port lagg tend to use the same lower
bits of the flowid as each other, resulting in a poor distribution of
packets among queues in certain cases. Work around this by adding a
set of sysctls for controlling a bit-shift on the flowid when doing
multi-port aggrigation in lagg and lacp. By default, lagg/lacp will
now use bits 16 and higher instead of 0 and higher.
Obtained from: Netflix
Diffstat (limited to 'sys/net/ieee8023ad_lacp.c')
-rw-r--r-- | sys/net/ieee8023ad_lacp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c index 8dbadd4..aef3740 100644 --- a/sys/net/ieee8023ad_lacp.c +++ b/sys/net/ieee8023ad_lacp.c @@ -874,7 +874,7 @@ lacp_select_tx_port(struct lagg_softc *sc, struct mbuf *m) } if (sc->use_flowid && (m->m_flags & M_FLOWID)) - hash = m->m_pkthdr.flowid; + hash = m->m_pkthdr.flowid >> sc->flowid_shift; else hash = lagg_hashmbuf(sc, m, lsc->lsc_hashkey); hash %= pm->pm_count; |