Re: [Intel-wired-lan] bug with rx-udp-gro-forwarding offloading?

From: Paolo Abeni
Date: Wed Jul 05 2023 - 09:30:02 EST


On Wed, 2023-07-05 at 13:32 +0200, Ian Kumlien wrote:
> On Wed, Jul 5, 2023 at 12:28 PM Paolo Abeni <pabeni@xxxxxxxxxx> wrote:
> >
> > On Tue, 2023-07-04 at 16:27 +0200, Ian Kumlien wrote:
> > > More stacktraces.. =)
> > >
> > > cat bug.txt | ./scripts/decode_stacktrace.sh vmlinux
> > > [ 411.413767] ------------[ cut here ]------------
> > > [ 411.413792] WARNING: CPU: 9 PID: 942 at include/net/ud p.h:509
> > > udpv6_queue_rcv_skb (./include/net/udp.h:509 net/ipv6/udp.c:800
> > > net/ipv6/udp.c:787)
> >
> > I'm really running out of ideas here...
> >
> > This is:
> >
> > WARN_ON_ONCE(UDP_SKB_CB(skb)->partial_cov);
> >
> > sort of hint skb being shared (skb->users > 1) while enqueued in
> > multiple places (bridge local input and br forward/flood to tun
> > device). I audited the bridge mc flooding code, and I could not find
> > how a shared skb could land into the local input path.
> >
> > Anyway the other splats reported here and in later emails are
> > compatible with shared skbs.
> >
> > The above leads to another bunch of questions:
> > * can you reproduce the issue after disabling 'rx-gro-list' on the
> > ingress device? (while keeping 'rx-udp-gro-forwarding' on).
>
> With rx-gro-list off, as in never turned on, everything seems to run fine
>
> > * do you have by chance qdiscs on top of the VM tun devices?
>
> default qdisc is fq

IIRC libvirt could reset the qdisc to noqueue for the owned tun
devices.

Could you please report the output of:

tc -d -s qdisc show dev <tun dev name>

Thanks!

/P