Subject: Re: [RFC PATCH net-next 3/3] packet: make use of deferred TX queue flushing

From: Jesper Dangaard Brouer <[email-masked]>
Date: Mon, 25 Aug 2014 15:54:02 +0200

On Sun, 24 Aug 2014 15:42:18 +0200
Daniel Borkmann <[email-masked]> wrote:

> This adds a first use-case of deferred tail pointer flushing
> for AF_PACKET's TX_RING in QDISC_BYPASS mode.

Testing with trafgen.  I've updated patch 1/3 to NOT call mmiowb(),
during this testing, see why in my other post.

trafgen cmdline:
 trafgen --cpp  --dev eth5 --conf udp_example01.trafgen -V --cpus 1
 * Only use 1 CPU
 * default is mmap
 * default is QDISC_BYPASS mode

BASELINE(no-patches): trafgen QDISC_BYPASS and mmap:
 - tx:1562539 pps

With PACKET_FLUSH_THRESH=8, and QDISC_BYPASS and mmap:
 - tx:1683746 pps

Improvement:
 + 121207 pps
 - 46 ns (1/1562539*10^9)-(1/1683746*10^9)

This is a significant improvement! :-)

-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Sr. Network Kernel Developer at Red Hat
  Author of http://www.iptv-analyzer.org
  LinkedIn: http://www.linkedin.com/in/brouer

Setup details:
--------------
Network overload testing setup according to:
 http://netoptimizer.blogspot.dk/2014/04/basic-tuning-for-network-overload.html

Trafgen input file:
 https://github.com/netoptimizer/network-testing/blob/master/trafgen/udp_example01.trafgen

Driver/NIC: ixgbe
CPU: E5-2695v2(ES)