• J
    pktgen: document tuning for max NIC performance · 9ceb87fc
    Jesper Dangaard Brouer 提交于
    Using pktgen I'm seeing the ixgbe driver "push-back", due TX ring
    running full.  Thus, the TX ring is artificially limiting pktgen.
    (Diagnose via "ethtool -S", look for "tx_restart_queue" or "tx_busy"
    counters.)
    
    Using ixgbe, the real reason behind the TX ring running full, is due
    to TX ring not being cleaned up fast enough. The ixgbe driver combines
    TX+RX ring cleanups, and the cleanup interval is affected by the
    ethtool --coalesce setting of parameter "rx-usecs".
    
    Do not increase the default NIC TX ring buffer or default cleanup
    interval.  Instead simply document that pktgen needs special NIC
    tuning for maximum packet per sec performance.
    
    Performance results with pktgen with clone_skb=100000.
    TX ring size 512 (default), adjusting "rx-usecs":
     (Single CPU performance, E5-2630, ixgbe)
     - 3935002 pps - rx-usecs:  1 (irqs:  9346)
     - 5132350 pps - rx-usecs: 10 (irqs: 99157)
     - 5375111 pps - rx-usecs: 20 (irqs: 50154)
     - 5454050 pps - rx-usecs: 30 (irqs: 33872)
     - 5496320 pps - rx-usecs: 40 (irqs: 26197)
     - 5502510 pps - rx-usecs: 50 (irqs: 21527)
    
    TX ring size adjusting (ethtool -G), "rx-usecs==1" (default):
     - 3935002 pps - tx-size:  512
     - 5354401 pps - tx-size:  768
     - 5356847 pps - tx-size: 1024
     - 5327595 pps - tx-size: 1536
     - 5356779 pps - tx-size: 2048
     - 5353438 pps - tx-size: 4096
    
    Notice after commit 6f25cd47 (pktgen: fix xmit test for BQL enabled
    devices) pktgen uses netif_xmit_frozen_or_drv_stopped() and ignores
    the BQL "stack" pause (QUEUE_STATE_STACK_XOFF) flag.  This allow us to put
    more pressure on the TX ring buffers.
    
    It is the ixgbe_maybe_stop_tx() call that stops the transmits, and
    pktgen respecting this in the call to netif_xmit_frozen_or_drv_stopped(txq).
    Signed-off-by: NJesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    9ceb87fc
pktgen.txt 9.8 KB