• Jakub Kicinski's avatar
    nfp: complete the XDP TX ring only when it's full · abeeec4a
    Jakub Kicinski authored
    Since XDP TX ring holds "spare" RX buffers anyway, we don't have to
    rush the completion.  We can wait until ring fills up completely
    before trying to reclaim buffers.  If RX poll has ended an no
    buffer has been queued for XDP TX we have no guarantee we will see
    another interrupt, so run the reclaim there as well, to make sure
    TX statistics won't become stale.
    
    This should help us reclaim more buffers per single queue controller
    register read.
    
    Note that the XDP completion is very trivial, it only adds up
    the sizes of transmitted frames for statistics so the latency
    spike should be acceptable.  In case user sets the ring sizes
    to something crazy, limit the completion to 2k entries.
    
    The check if the ring is empty at the beginning of xdp_complete()
    is no longer needed - the callers will perform it.
    Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    abeeec4a
nfp_net.h 26.4 KB