Re: [PATCH net] bnxt: don't handle XDP in netpoll
From: Jakub Kicinski <kuba@kernel.org>
Date: 2023-07-27 19:42:30
From: Jakub Kicinski <kuba@kernel.org>
Date: 2023-07-27 19:42:30
On Thu, 27 Jul 2023 12:29:24 -0700 Michael Chan wrote:
quoted
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.