diff options
author | Jussi Maki <[email protected]> | 2021-06-15 08:54:15 +0000 |
---|---|---|
committer | David S. Miller <[email protected]> | 2021-06-15 11:26:15 -0700 |
commit | 848ca9182a7d25bb54955c3aab9a3a2742bf9678 (patch) | |
tree | 15449c43a407368fbc404c5d79c5e4189840226e /tools/testing/selftests/bpf/prog_tests/autoload.c | |
parent | b8f6b0522c298ae9267bd6584e19b942a0636910 (diff) |
net: bonding: Use per-cpu rr_tx_counter
The round-robin rr_tx_counter was shared across CPUs leading to
significant cache thrashing at high packet rates. This patch switches
the round-robin packet counter to use a per-cpu variable to decide
the destination slave.
On a test with 2x100Gbit ICE nic with pktgen_sample_04_many_flows.sh
(-s 64 -t 32) the tx rate was 19.6Mpps before and 22.3Mpps after
this patch.
"perf top -e cache_misses" before:
12.31% [bonding] [k] bond_xmit_roundrobin_slave_get
10.59% [sch_fq_codel] [k] fq_codel_dequeue
9.34% [kernel] [k] skb_release_data
after:
15.42% [sch_fq_codel] [k] fq_codel_dequeue
10.06% [kernel] [k] __memset
9.12% [kernel] [k] skb_release_data
Signed-off-by: Jussi Maki <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/autoload.c')
0 files changed, 0 insertions, 0 deletions