vtnet may sleep with the following non-sleepable locks held

From: Bjoern A. Zeeb <bzeeb-lists_at_lists.zabbadoz.net>
Date: Thu, 05 May 2022 18:54:41 UTC
Hi,

not sure if the problem is from f0d8d352c06ff or older or newer in fact.
I see this when enabled IPv6 on vtnet on main with GENERIC and do a rtsol vtnet0:

Invoking IPv6 network device address event may sleep with the following non-sleepable locks held:
exclusive sleep mutex vtnet0-rx0 (vtnet0-rx0) r = 0 (0xfffff80001793480) locked @ /main_clean_for_test/sys/dev/virtio/network/if_vtnet.c:2198
stack backtrace:
#0 0xffffffff80c80405 at witness_debugger+0x65
#1 0xffffffff80c8155a at witness_warn+0x3ea
#2 0xffffffff80e2263d at in6_update_ifa+0xd7d
#3 0xffffffff80e4db5d at in6_ifadd+0x1fd
#4 0xffffffff80e4a0a8 at nd6_ra_input+0xfb8
#5 0xffffffff80e1d01b at icmp6_input+0x76b
#6 0xffffffff80e351bf at ip6_input+0xc2f
#7 0xffffffff80d5cd9f at netisr_dispatch_src+0xaf
#8 0xffffffff80d3f03e at ether_demux+0x16e
#9 0xffffffff80d406cc at ether_nh_input+0x3fc
#10 0xffffffff80d5cd9f at netisr_dispatch_src+0xaf
#11 0xffffffff80d3f509 at ether_input+0x99
#12 0xffffffff80a3d1c3 at vtnet_rxq_eof+0x763
#13 0xffffffff80a3c9b7 at vtnet_rx_vq_process+0x97
#14 0xffffffff80bc91a9 at ithread_loop+0x279
#15 0xffffffff80bc5840 at fork_exit+0x80
#16 0xffffffff810c3cae at fork_trampoline+0xe
lock order reversal: (sleepable after non-sleepable)
  1st 0xfffff80001793480 vtnet0-rx0 (vtnet0-rx0, sleep mutex) @ /main_clean_for_test/sys/dev/virtio/network/if_vtnet.c:2198
  2nd 0xffffffff81fb1ec8 in6_multi_sx (in6_multi_sx, sx) @ /main_clean_for_test/sys/netinet6/in6_mcast.c:1193
lock order vtnet0-rx0 -> in6_multi_sx attempted at:
#0 0xffffffff80c7ffcd at witness_checkorder+0xbdd
#1 0xffffffff80c19093 at _sx_xlock+0x63
#2 0xffffffff80e2b451 at in6_joingroup+0x31
#3 0xffffffff80e229d8 at in6_update_ifa+0x1118
#4 0xffffffff80e4db5d at in6_ifadd+0x1fd
#5 0xffffffff80e4a0a8 at nd6_ra_input+0xfb8
#6 0xffffffff80e1d01b at icmp6_input+0x76b
#7 0xffffffff80e351bf at ip6_input+0xc2f
#8 0xffffffff80d5cd9f at netisr_dispatch_src+0xaf
#9 0xffffffff80d3f03e at ether_demux+0x16e
#10 0xffffffff80d406cc at ether_nh_input+0x3fc
#11 0xffffffff80d5cd9f at netisr_dispatch_src+0xaf
#12 0xffffffff80d3f509 at ether_input+0x99
#13 0xffffffff80a3d1c3 at vtnet_rxq_eof+0x763
#14 0xffffffff80a3c9b7 at vtnet_rx_vq_process+0x97
#15 0xffffffff80bc91a9 at ithread_loop+0x279
#16 0xffffffff80bc5840 at fork_exit+0x80
#17 0xffffffff810c3cae at fork_trampoline+0xe


-- 
Bjoern A. Zeeb                                                     r15:7