Subject: Re: [PATCH net] bnxt: don't handle XDP in netpoll

From: Jakub Kicinski <[email-masked]>
Date: Thu, 27 Jul 2023 12:42:28 -0700

On Thu, 27 Jul 2023 12:29:24 -0700 Michael Chan wrote:
> > Do you prefer adding a return value to tx_int() to tell
> > __bnxt_poll_work_done() whether the work has been done;
> > or to clear tx_pkts in the handler itself rather than
> > the caller?
> 
> It's a bigger problem.  When we transmit packets, we store these
> packet buffers and advance the producer index.  The completion ring
> tells us how many TX packets have completed.  We then walk the TX ring
> for the number of TX packets completed and free the buffers.  If we
> cannot free the buffers now, we have to save this information (the
> consumer index).  We won't get this information again in the
> completion ring.

It's already saved in bnapi->tx_pkts, isn't it?

This makes me wonder if the bug we were seeing with unexpected
completions isn't tx_pkts being stale. Because it's not getting
wiped on reset.