Re: [PATCH net-next] virtio_net: Fix napi_skb_cache_put warning
From: Breno Leitao
Date: Mon Jul 15 2024 - 07:25:31 EST
Hello Michael,
On Sun, Jul 14, 2024 at 03:38:42AM -0400, Michael S. Tsirkin wrote:
> On Fri, Jul 12, 2024 at 04:53:25AM -0700, Breno Leitao 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@xxxxxxxxxx>
> > Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>
>
> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
>
> though I'm not sure I understand the connection with bdacf3e34945.
The warning above appeared after bdacf3e34945 landed.