On Tue, Aug 12, 2025 at 5:38 AM Tony Nguyen <[email protected]> wrote:
>
>
>
> On 8/10/2025 5:22 AM, Jason Xing wrote:
> > On Sat, Jul 26, 2025 at 3:04 PM Jason Xing <[email protected]> 
> > wrote:
> >>
> >> From: Jason Xing <[email protected]>
> >>
> >> Resolve the budget negative overflow which leads to returning true in
> >> ixgbe_xmit_zc even when the budget of descs are thoroughly consumed.
> >>
> >> Before this patch, when the budget is decreased to zero and finishes
> >> sending the last allowed desc in ixgbe_xmit_zc, it will always turn back
> >> and enter into the while() statement to see if it should keep processing
> >> packets, but in the meantime it unexpectedly decreases the value again to
> >> 'unsigned int (0--)', namely, UINT_MAX. Finally, the ixgbe_xmit_zc returns
> >> true, showing 'we complete cleaning the budget'. That also means
> >> 'clean_complete = true' in ixgbe_poll.
> >>
> >> The true theory behind this is if that budget number of descs are consumed,
> >> it implies that we might have more descs to be done. So we should return
> >> false in ixgbe_xmit_zc to tell napi poll to find another chance to start
> >> polling to handle the rest of descs. On the contrary, returning true here
> >> means job done and we know we finish all the possible descs this time and
> >> we don't intend to start a new napi poll.
> >>
> >> It is apparently against our expectations. Please also see how
> >> ixgbe_clean_tx_irq() handles the problem: it uses do..while() statement
> >> to make sure the budget can be decreased to zero at most and the negative
> >> overflow never happens.
> >>
> >> The patch adds 'likely' because we rarely would not hit the loop codition
> >> since the standard budget is 256.
> >>
> >> Fixes: 8221c5eba8c1 ("ixgbe: add AF_XDP zero-copy Tx support")
> >> Signed-off-by: Jason Xing <[email protected]>
> >> Reviewed-by: Larysa Zaremba <[email protected]>
> >
> > Hi Tony,
> >
> > Any update here? Thanks! I'm asking because I'm ready to send an afxdp
> > patch series based on the patch :)
>
> Hi Jason,
>
> I have this slated to be part of my next net series. I do already have
> this patch applied/staged on the Intel tree [1] (dev-queue branch). You
> can base it on that and send the changes now; I'll ensure that this
> patch is merged before sending the other series.
>
> Thanks,
> Tony
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git/

Great, thanks for the pointer!

Thanks,
Jason

Reply via email to