• Jakub Kicinski's avatar
    nfp: avoid reading TX queue indexes from the device · d38df0d3
    Jakub Kicinski authored
    Reading TX queue indexes from the device memory on each interrupt
    is expensive.  It's doubly expensive with XDP running since we have
    two TX rings to check there.  If the software indexes indicate that
    the TX queue is completely empty, however, we don't need to look at
    the device completion index at all.
    
    The queuing CPU is doing a wmb() before kicking the device TX so
    we should be safe to assume on the CPU handling the completions will
    never see old value of the software copy of the index.
    Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d38df0d3
nfp_net_common.c 86.5 KB