Thread (12 messages) 12 messages, 7 authors, 2024-09-05

Re: [PATCH net-next] virtio_net: Fix napi_skb_cache_put warning

From: Jason Wang <jasowang@redhat.com>
Date: 2024-07-15 01:08:43
Also in: lkml, virtualization

On Fri, Jul 12, 2024 at 7:54 PM Breno Leitao [off-list ref] wrote:
After the commit bdacf3e34945 ("net: Use nested-BH locking for
napi_alloc_cache.") was merged, the following warning began to appear:

         WARNING: CPU: 5 PID: 1 at net/core/skbuff.c:1451 napi_skb_cache_put+0x82/0x4b0

          __warn+0x12f/0x340
          napi_skb_cache_put+0x82/0x4b0
          napi_skb_cache_put+0x82/0x4b0
          report_bug+0x165/0x370
          handle_bug+0x3d/0x80
          exc_invalid_op+0x1a/0x50
          asm_exc_invalid_op+0x1a/0x20
          __free_old_xmit+0x1c8/0x510
          napi_skb_cache_put+0x82/0x4b0
          __free_old_xmit+0x1c8/0x510
          __free_old_xmit+0x1c8/0x510
          __pfx___free_old_xmit+0x10/0x10

The issue arises because virtio is assuming it's running in NAPI context
even when it's not, such as in the netpoll case.

To resolve this, modify virtnet_poll_tx() to only set NAPI when budget
is available. Same for virtnet_poll_cleantx(), which always assumed that
it was in a NAPI context.

Fixes: df133f3f9625 ("virtio_net: bulk free tx skbs")
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
Acked-by: Jason Wang <jasowang@redhat.com>

Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help