[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230727124228.01a9bb0a@kernel.org>
Date: Thu, 27 Jul 2023 12:42:28 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Michael Chan <michael.chan@...adcom.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com,
pabeni@...hat.com, gospo@...adcom.com
Subject: Re: [PATCH net] bnxt: don't handle XDP in netpoll
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.
Powered by blists - more mailing lists