diff options
author | Jesper Dangaard Brouer <brouer@redhat.com> | 2014-04-27 18:09:38 +0200 |
---|---|---|
committer | Jesper Dangaard Brouer <brouer@redhat.com> | 2014-04-27 18:11:08 +0200 |
commit | d21b30bd64fdf4e7358037aa2d6f0cea02c49b6e (patch) | |
tree | ecdf9727c757a3f188a8798ed1753cac7e9507a1 /staging/tx_switch.c | |
parent | 3398b35c047d97b22a52f4dc4a0d5eabf50a96ef (diff) |
trafgen: performance regression at 10G due to smaller ring buffer size
commit c10621e ("trafgen: keep a small initial ring buffer size to
reduce cache-misses") reduced default ring buffer size to 196KiB,
but on my big machines with 10Gbit/s this size is too small.
Increase default ring-size to 512 KiB, yield the best results,
without increasing ring buffer size too much, this fixes #120.
Single CPU results from my E5-2630 CPU with intel ixgbe/82599.
(Cmd: trafgen --cpp --dev eth8 --conf udp_example01.trafgen --cpu 1)
* 769,440 pkts/sec -- default ring-size 196 KiB
* 1,417,908 pkts/sec -- ring-size 500 KiB
Going above CPUs L3 cache size which is (15Mb)
* 1,236,580 pkts/sec -- ring-size 20000KiB
The mmap'ed ring buffer is now faster than using sendto().
For comparison, not using the ring-buffer, by using option "-t0":
* 1,381,364 (with qdisc bypass)
And using the qdisc code path in the kernel (enable via
parameter "--qdisc-path")
* 1,227,772 pkts/sec (with --qdisc-path)
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Diffstat (limited to 'staging/tx_switch.c')
0 files changed, 0 insertions, 0 deletions