]> git.baikalelectronics.ru Git - kernel.git/commit
nfp: complete the XDP TX ring only when it's full
authorJakub Kicinski <jakub.kicinski@netronome.com>
Tue, 16 May 2017 00:55:21 +0000 (17:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 May 2017 16:59:03 +0000 (12:59 -0400)
commit538cfd17aca6d2baab3ade656439eea489c5a81a
treea77aafdb433d5a04ac721a6c03ad263c15564f38
parent32a86f6e95158f8b457fcb9b210964de4913ad36
nfp: complete the XDP TX ring only when it's full

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: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_net.h
drivers/net/ethernet/netronome/nfp/nfp_net_common.c