Thread (8 messages) read the whole thread 8 messages, 6 authors, 2019-08-27

Re: [PATCH net v3] ixgbe: fix double clean of tx descriptors with xdp

From: Björn Töpel <hidden>
Date: 2019-08-23 06:10:34
Also in: bpf, intel-wired-lan, lkml

On 2019-08-22 19:32, William Tu wrote:
On Thu, Aug 22, 2019 at 10:21 AM Alexander Duyck
[off-list ref] wrote:
quoted
On Thu, Aug 22, 2019 at 10:12 AM Ilya Maximets [off-list ref] wrote:
quoted
Tx code doesn't clear the descriptors' status after cleaning.
So, if the budget is larger than number of used elems in a ring, some
descriptors will be accounted twice and xsk_umem_complete_tx will move
prod_tail far beyond the prod_head breaking the completion queue ring.

Fix that by limiting the number of descriptors to clean by the number
of used descriptors in the tx ring.

'ixgbe_clean_xdp_tx_irq()' function refactored to look more like
'ixgbe_xsk_clean_tx_ring()' since we're allowed to directly use
'next_to_clean' and 'next_to_use' indexes.

Fixes: 8221c5eba8c1 ("ixgbe: add AF_XDP zero-copy Tx support")
Signed-off-by: Ilya Maximets <redacted>
---

Version 3:
   * Reverted some refactoring made for v2.
   * Eliminated 'budget' for tx clean.
   * prefetch returned.

Version 2:
   * 'ixgbe_clean_xdp_tx_irq()' refactored to look more like
     'ixgbe_xsk_clean_tx_ring()'.

  drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 29 ++++++++------------
  1 file changed, 11 insertions(+), 18 deletions(-)
Thanks for addressing my concerns.

Acked-by: Alexander Duyck <redacted>
Thanks.

Tested-by: William Tu <redacted>
Will, thanks for testing! For this patch, did you notice any performance
degradation?


Cheers,
Björn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help