====================================== | [ 11.120795][ C1] #4: ffffffff90591ec0 (rcu_read_lock){....}-{1:3}, at: ip_local_deliver_finish (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:840 (discriminator 2) net/ipv4/ip_input.c:240 (discriminator 2)) | [ 11.121086][ C1] #5: ff1100000ec42fa8 (&vxlan->hash_lock){+.-.}-{3:3}, at: vxlan_snoop (./include/linux/spinlock.h:342 drivers/net/vxlan/vxlan_core.c:1487) vxlan | [ 11.121397][ C1] | [ 11.121397][ C1] stack backtrace: [ 11.121587][ C1] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 11.121589][ C1] Call Trace: [ 11.121590][ C1] [ 11.121592][ C1] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 11.121597][ C1] lockdep_rcu_suspicious.cold (kernel/locking/lockdep.c:6876) [ 11.121602][ C1] vxlan_fdb_create (drivers/net/vxlan/vxlan_core.c:872 (discriminator 8)) vxlan [ 11.121608][ C1] ? vxlan_find_mac_rcu (./include/linux/rhashtable.h:648 (discriminator 8) ./include/linux/rhashtable.h:673 (discriminator 8) drivers/net/vxlan/vxlan_core.c:396 (discriminator 8)) vxlan [ 11.121614][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 11.121618][ C1] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 11.121621][ C1] ? vxlan_open (drivers/net/vxlan/vxlan_core.c:3030) vxlan [ 11.121624][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 11.121629][ C1] vxlan_fdb_update (drivers/net/vxlan/vxlan_core.c:1095 drivers/net/vxlan/vxlan_core.c:1138) vxlan [ 11.121636][ C1] ? vxlan_fdb_create (./arch/x86/include/asm/bitops.h:202 (discriminator 1)) vxlan [ 11.121639][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 11.121642][ C1] ? do_raw_spin_lock (./include/linux/instrumented.h:55 ./include/linux/atomic/atomic-instrumented.h:1301 ./include/asm-generic/qspinlock.h:111 kernel/locking/spinlock_debug.c:116) [ 11.121646][ C1] vxlan_snoop (drivers/net/vxlan/vxlan_core.c:1491) vxlan [ 11.121651][ C1] ? __iptunnel_pull_header (net/ipv4/ip_tunnel_core.c:136) [ 11.121656][ C1] vxlan_rcv (drivers/net/vxlan/vxlan_core.c:1634 (discriminator 1) drivers/net/vxlan/vxlan_core.c:1772 (discriminator 1)) vxlan [ 11.121664][ C1] ? encap_bypass_if_local (drivers/net/vxlan/vxlan_core.c:2353) vxlan [ 11.121669][ C1] ? udp_lib_lport_inuse2 (net/ipv4/udp.c:179 (discriminator 1)) [ 11.121673][ C1] ? __udp4_lib_lookup (net/ipv4/udp.c:714) [ 11.121681][ C1] ? encap_bypass_if_local (drivers/net/vxlan/vxlan_core.c:2353) vxlan [ 11.121685][ C1] ? udp_queue_rcv_one_skb (net/ipv4/udp.c:2389) [ 11.121687][ C1] udp_queue_rcv_one_skb (net/ipv4/udp.c:2389) [ 11.121688][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 11.121690][ C1] ? down_read_killable_nested (kernel/locking/rwsem.c:205 kernel/locking/rwsem.c:1295 kernel/locking/rwsem.c:1314 kernel/locking/rwsem.c:1720) [ 11.121693][ C1] udp_unicast_rcv_skb (net/ipv4/udp.c:2577) [ 11.121696][ C1] ? udp_rcv (net/ipv4/udp.c:742 (discriminator 3) net/ipv4/udp.c:2652 (discriminator 3)) [ 11.121698][ C1] udp_rcv (net/ipv4/udp.c:2654) [ 11.121702][ C1] ? udp_sk_rx_dst_set (net/ipv4/udp.c:2452 (discriminator 1)) [ 11.121706][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 11.121708][ C1] ? ip_local_deliver_finish (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:840 (discriminator 2) net/ipv4/ip_input.c:240 (discriminator 2)) [ 11.121711][ C1] ip_protocol_deliver_rcu (net/ipv4/ip_input.c:207) [ 11.121714][ C1] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6667 (discriminator 2)) [ 11.121716][ C1] ip_local_deliver_finish (net/ipv4/ip_input.c:241 (discriminator 1)) [ 11.121719][ C1] ip_local_deliver (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv4/ip_input.c:262) [ 11.121721][ C1] ? ip_local_deliver_finish (net/ipv4/ip_input.c:232 (discriminator 42)) [ 11.121724][ C1] ? ip_rcv_finish_core (net/ipv4/ip_input.c:407 (discriminator 1)) [ 11.121726][ C1] ? __asan_memset (mm/kasan/shadow.c:84 (discriminator 1)) [ 11.121732][ C1] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6667 (discriminator 2)) [ 11.121733][ C1] ip_rcv (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv4/ip_input.c:612) [ 11.121736][ C1] ? ip_local_deliver (./include/linux/rcupdate.h:869 (discriminator 3)) [ 11.121737][ C1] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 11.121741][ C1] ? mark_usage (kernel/locking/lockdep.c:4674) [ 11.121743][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 11.121747][ C1] __netif_receive_skb_one_core (net/core/dev.c:6228) [ 11.121749][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 11.121752][ C1] ? __netif_receive_skb_list_core (net/core/dev.c:6274 (discriminator 2)) [ 11.121754][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 11.121760][ C1] process_backlog (net/core/dev.c:6669) [ 11.121764][ C1] __napi_poll (net/core/dev.c:7728) [ 11.121767][ C1] net_rx_action (net/core/dev.c:7791 net/core/dev.c:7948) [ 11.121772][ C1] ? __napi_poll (./include/net/gro.h:507) [ 11.121776][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 11.121778][ C1] ? __rwlock_init (kernel/locking/spinlock_debug.c:48) [ 11.121783][ C1] ? clockevents_program_event (kernel/time/clockevents.c:372) [ 11.121787][ C1] ? __run_timers (./include/trace/events/timer.h:138 (discriminator 19)) [ 11.121789][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 11.121791][ C1] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 11.121794][ C1] handle_softirqs (kernel/softirq.c:622) [ 11.121799][ C1] ? _local_bh_enable (kernel/softirq.c:405 (discriminator 1)) [ 11.121804][ C1] do_softirq (kernel/softirq.c:523 (discriminator 19) kernel/softirq.c:510 (discriminator 19)) [ 11.121806][ C1] [ 11.121807][ C1] [ 11.121807][ C1] __local_bh_enable_ip (kernel/softirq.c:450) [ 11.121810][ C1] __neigh_event_send (./include/linux/bottom_half.h:33 (discriminator 2) net/core/neighbour.c:1276 (discriminator 2)) [ 11.121812][ C1] ? warn_bogus_irq_restore (kernel/locking/irqflag-debug.c:8) [ 11.121817][ C1] ? sync_exp_reset_tree_hotplug (kernel/rcu/tree_exp.h:114) [ 11.121821][ C1] neigh_resolve_output (./include/net/neighbour.h:480 ./include/net/neighbour.h:486 ./include/net/neighbour.h:484 net/core/neighbour.c:1600) [ 11.121823][ C1] ip_finish_output2 (./include/net/neighbour.h:560 (discriminator 3) net/ipv4/ip_output.c:236 (discriminator 3)) [ 11.121826][ C1] ? ip_dst_mtu_maybe_forward (./include/linux/rcupdate.h:873 ./include/net/ip.h:504) [ 11.121829][ C1] ? ip4_dst_hoplimit (./include/net/dst.h:582 (discriminator 4) ./include/net/dst.h:587 (discriminator 4) ./include/net/route.h:393 (discriminator 4)) [ 11.121831][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 11.121835][ C1] ip_output (./include/linux/netfilter.h:314 net/ipv4/ip_output.c:437) [ 11.121838][ C1] ? ip_finish_output (./include/linux/cgroup.h:868) [ 11.121840][ C1] ? __ip_make_skb (net/ipv4/ip_output.c:1386 net/ipv4/ip_output.c:1497) [ 11.121846][ C1] ip_push_pending_frames (./include/net/dst.h:470 (discriminator 4) net/ipv4/ip_output.c:131 (discriminator 4) net/ipv4/ip_output.c:1506 (discriminator 4) net/ipv4/ip_output.c:1526 (discriminator 4)) [ 11.121849][ C1] raw_sendmsg (net/ipv4/raw.c:657) [ 11.121853][ C1] ? raw_send_hdrinc (./include/net/ip.h:581 (discriminator 1)) [ 11.121855][ C1] ? folio_add_lru_vma (mm/swap.c:581) [ 11.121859][ C1] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4069 (discriminator 3) kernel/rcu/tree.c:4061 (discriminator 3)) [ 11.121863][ C1] ? rcu_read_unlock (./include/linux/rcupdate.h:869 (discriminator 5)) [ 11.121868][ C1] ? wp_page_copy (./arch/x86/include/asm/atomic.h:23 ./include/linux/atomic/atomic-arch-fallback.h:457 ./include/linux/atomic/atomic-instrumented.h:33 ./include/linux/page_ref.h:67 ./include/linux/mm.h:1810 ./include/linux/mm.h:1816 ./include/linux/mm.h:2123 mm/memory.c:3989) [ 11.121871][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 11.121873][ C1] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 11.121878][ C1] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 11.121880][ C1] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 11.121884][ C1] __sys_sendto (net/socket.c:775 (discriminator 4) net/socket.c:790 (discriminator 4) net/socket.c:2252 (discriminator 4)) [ 11.121887][ C1] ? __ia32_sys_getpeername (net/socket.c:2206) [ 11.121888][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5574) [ 11.121898][ C1] ? exc_page_fault (arch/x86/mm/fault.c:1483 arch/x86/mm/fault.c:1536) [ 11.121902][ C1] __x64_sys_sendto (net/socket.c:2259 net/socket.c:2255 net/socket.c:2255) [ 11.121904][ C1] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 22)) [ 11.121907][ C1] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 11.121909][ C1] ? do_syscall_64 (./include/linux/entry-common.h:177 arch/x86/entry/syscall_64.c:89) [ 11.121912][ C1] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 11.121913][ C1] ? trace_hardirqs_off (kernel/trace/trace_preemptirq.c:104 (discriminator 1)) [ 11.121915][ C1] ? exc_page_fault (arch/x86/mm/fault.c:1489 (discriminator 3) arch/x86/mm/fault.c:1536 (discriminator 3)) [ 11.121918][ C1] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 11.121920][ C1] RIP: 0033:0x7f9066f8654e [ 11.121923][ C1] Code: 4d 89 d8 e8 b4 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 c3 83 e2 39 83 fa 08 75 e7 e8 03 ff ff ff 0f 1f 00 f3 0f 1e fa All code ======== 0: 4d 89 d8 mov %r11,%r8 3: e8 b4 bd 00 00 call 0xbdbc 8: 4c 8b 5d f8 mov -0x8(%rbp),%r11 c: 41 8b 93 08 03 00 00 mov 0x308(%r11),%edx 13: 59 pop %rcx 14: 5e pop %rsi 15: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax 19: 74 11 je 0x2c 1b: c9 leave 1c: c3 ret 1d: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 24: 48 8b 45 10 mov 0x10(%rbp),%rax 28: 0f 05 syscall 2a:* c9 leave <-- trapping instruction 2b: c3 ret 2c: 83 e2 39 and $0x39,%edx 2f: 83 fa 08 cmp $0x8,%edx 32: 75 e7 jne 0x1b 34: e8 03 ff ff ff call 0xffffffffffffff3c 39: 0f 1f 00 nopl (%rax) 3c: f3 0f 1e fa endbr64 Code starting with the faulting instruction =========================================== 0: c9 leave 1: c3 ret 2: 83 e2 39 and $0x39,%edx 5: 83 fa 08 cmp $0x8,%edx 8: 75 e7 jne 0xfffffffffffffff1 a: e8 03 ff ff ff call 0xffffffffffffff12 f: 0f 1f 00 nopl (%rax) 12: f3 0f 1e fa endbr64 [ 11.121925][ C1] RSP: 002b:00007ffec60b9840 EFLAGS: 00000202 ORIG_RAX: 000000000000002c [ 11.121927][ C1] RAX: ffffffffffffffda RBX: 0000000000000040 RCX: 00007f9066f8654e [ 11.121929][ C1] RDX: 0000000000000040 RSI: 000055613ea030a4 RDI: 0000000000000005 [ 11.121929][ C1] RBP: 00007ffec60b9850 R08: 000055613ea15320 R09: 0000000000000010 [ 11.121930][ C1] R10: 0000000000000000 R11: 0000000000000202 R12: 431bde82d7b634db Finger prints: vxlan_fdb_create:vxlan_fdb_update:vxlan_snoop:vxlan_rcv:udp_queue_rcv_one_skb