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