• Mitch Williams's avatar
    i40e/i40evf: Refactor the receive routines · a132af24
    Mitch Williams authored
    Split the receive hot path code into two, one for packet split and one
    for single buffer. This improves receive performance since we only need
    to check if the ring is in packet split mode once per NAPI poll time,
    not several times per packet. The single buffer code is further improved
    by the removal of a bunch of code and several variables that are not
    needed. On a receive-oriented test this can improve single-threaded
    throughput.
    
    Also refactor the packet split receive path to use a fixed buffer for
    headers, like ixgbe does. This vastly reduces the number of DMA mappings
    and unmappings we need to do, allowing for much better performance in
    the presence of an IOMMU.
    
    Lastly, correct packet split descriptor types now that we are actually
    using them.
    
    Change-ID: I3a194a93af3d2c31e77ff17644ac7376da6f3e4b
    Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
    Tested-by: default avatarJim Young <james.m.young@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    a132af24
i40e_txrx.c 74.1 KB