On Mon, Nov 09, 2026 at 04:54:59PM +0000, Bruce Richardson wrote:
> On Fri, Nov 06, 2026 at 10:25:14AM +0100, Jerome Tollet wrote:
> > A TSO packet can use more descriptors than tx_rs_thresh. The scalar Tx
> > path records the completion descriptor only for the bucket containing
> > the packet's first descriptor. If the packet fills the next bucket,
> > that bucket has no completion entry. Cleanup then stops reclaiming
> > descriptors and the Tx ring stalls.
> > 
> > Record the packet's last descriptor for every bucket it crosses, and
> > wrap the bucket index at the end of the ring.
> > 
> > On E810 PF (ice) and VF (iavf) with 2K buffers and tx_rs_thresh=32,
> > 65K GSO NVMe/TCP traffic reproduced the stall. With this change,
> > 4K and 128K CRC tests passed with TSO enabled on both.
> > 
> > A standalone DPDK iavf reproducer, with no VPP, sends a 31-descriptor
> > TSO packet followed by a 33-descriptor TSO packet. Both pass
> > rte_eth_tx_prepare(). The original PMD leaves rs_last_id[1] pointing
> > to descriptor 0 and stalls after 991 further packets. With this fix,
> > it records descriptor 63 and transmits all 2048 further packets.
> > 
> > Fixes: 8f4396b9f63c ("net/intel: use separate array for desc status 
> > tracking")
> > Cc: [email protected]
> > Signed-off-by: Jerome Tollet <[email protected]>
> > ---
> >  .mailmap                             |  1 +
> >  drivers/net/intel/common/tx_scalar.h | 23 +++++++++++++----------
> >  2 files changed, 14 insertions(+), 10 deletions(-)
> > 
> 
> Thanks, fix looks correct to me, and AI agrees. However, I have a few
> stylistic comments inline below. If you're ok with it, I can make the
> couple of suggested changes on apply. (Otherwise, please send a v2)
> 
> /Bruce
> 
Acked-by: Bruce Richardson <[email protected]>

Patch applied to dpdk-next-net-intel tree with suggested changes applied.
Please review in case of any issues when adjusting on apply.

Thanks,
/Bruce

Reply via email to