====================================== | [ 47.828238][ C2] #4: ffffffff9f391dc0 (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)) | [ 47.828633][ C2] #5: ff1100000cc62fa8 (&vxlan->hash_lock){+.-.}-{3:3}, at: vxlan_snoop (./include/linux/spinlock.h:342 drivers/net/vxlan/vxlan_core.c:1487) vxlan | [ 47.829044][ C2] | [ 47.829044][ C2] stack backtrace: [ 47.829308][ C2] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 47.829310][ C2] Call Trace: [ 47.829312][ C2] [ 47.829314][ C2] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 47.829322][ C2] lockdep_rcu_suspicious.cold (kernel/locking/lockdep.c:6876) [ 47.829328][ C2] vxlan_fdb_create (drivers/net/vxlan/vxlan_core.c:872 (discriminator 8)) vxlan [ 47.829335][ C2] ? 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 [ 47.829341][ C2] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 47.829345][ C2] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 47.829348][ C2] ? vxlan_open (drivers/net/vxlan/vxlan_core.c:3030) vxlan [ 47.829352][ C2] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 47.829354][ C2] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 47.829361][ C2] vxlan_fdb_update (drivers/net/vxlan/vxlan_core.c:1095 drivers/net/vxlan/vxlan_core.c:1138) vxlan [ 47.829368][ C2] ? vxlan_fdb_create (./arch/x86/include/asm/bitops.h:202 (discriminator 1)) vxlan [ 47.829372][ C2] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 47.829375][ C2] ? 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) [ 47.829379][ C2] vxlan_snoop (drivers/net/vxlan/vxlan_core.c:1491) vxlan [ 47.829385][ C2] ? __iptunnel_pull_header (net/ipv4/ip_tunnel_core.c:136) [ 47.829390][ C2] vxlan_rcv (drivers/net/vxlan/vxlan_core.c:1634 (discriminator 1) drivers/net/vxlan/vxlan_core.c:1772 (discriminator 1)) vxlan [ 47.829399][ C2] ? encap_bypass_if_local (drivers/net/vxlan/vxlan_core.c:2353) vxlan [ 47.829405][ C2] ? udp_lib_lport_inuse2 (net/ipv4/udp.c:179 (discriminator 1)) [ 47.829410][ C2] ? __udp4_lib_lookup (net/ipv4/udp.c:714) [ 47.829414][ C2] ? encap_bypass_if_local (drivers/net/vxlan/vxlan_core.c:2353) vxlan [ 47.829418][ C2] ? udp_queue_rcv_one_skb (net/ipv4/udp.c:2389) [ 47.829420][ C2] udp_queue_rcv_one_skb (net/ipv4/udp.c:2389) [ 47.829421][ C2] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 47.829423][ C2] ? down_read_killable_nested (kernel/locking/rwsem.c:1298 (discriminator 4) kernel/locking/rwsem.c:1314 (discriminator 4) kernel/locking/rwsem.c:1720 (discriminator 4)) [ 47.829426][ C2] udp_unicast_rcv_skb (net/ipv4/udp.c:2577) [ 47.829429][ C2] ? udp_rcv (net/ipv4/udp.c:742 (discriminator 3) net/ipv4/udp.c:2652 (discriminator 3)) [ 47.829431][ C2] udp_rcv (net/ipv4/udp.c:2654) [ 47.829436][ C2] ? udp_sk_rx_dst_set (net/ipv4/udp.c:2452 (discriminator 1)) [ 47.829440][ C2] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 47.829442][ C2] ? 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)) [ 47.829446][ C2] ip_protocol_deliver_rcu (net/ipv4/ip_input.c:207) [ 47.829450][ C2] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6673 (discriminator 2)) [ 47.829452][ C2] ip_local_deliver_finish (net/ipv4/ip_input.c:241 (discriminator 1)) [ 47.829455][ C2] ip_local_deliver (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv4/ip_input.c:262) [ 47.829458][ C2] ? ip_local_deliver_finish (net/ipv4/ip_input.c:232 (discriminator 42)) [ 47.829460][ C2] ? ip_rcv_finish_core (net/ipv4/ip_input.c:407 (discriminator 1)) [ 47.829462][ C2] ? __asan_memset (mm/kasan/shadow.c:84 (discriminator 1)) [ 47.829469][ C2] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6673 (discriminator 2)) [ 47.829471][ C2] ip_rcv (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv4/ip_input.c:612) [ 47.829482][ C2] ? ip_local_deliver (./include/linux/rcupdate.h:869 (discriminator 3)) [ 47.829484][ C2] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 47.829486][ C2] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 47.829488][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 47.829491][ C2] ? mark_usage (kernel/locking/lockdep.c:4674) [ 47.829494][ C2] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 47.829498][ C2] __netif_receive_skb_one_core (net/core/dev.c:6234) [ 47.829500][ C2] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 47.829503][ C2] ? __netif_receive_skb_list_core (net/core/dev.c:6280 (discriminator 2)) [ 47.829505][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 47.829510][ C2] process_backlog (net/core/dev.c:6675) [ 47.829515][ C2] __napi_poll (net/core/dev.c:7734) [ 47.829518][ C2] net_rx_action (net/core/dev.c:7797 net/core/dev.c:7954) [ 47.829523][ C2] ? __napi_poll (./include/net/gro.h:507) [ 47.829526][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 47.829534][ C2] ? clockevents_program_event (kernel/time/clockevents.c:372) [ 47.829537][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 47.829538][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 47.829540][ C2] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 47.829544][ C2] handle_softirqs (kernel/softirq.c:622) [ 47.829550][ C2] ? _local_bh_enable (kernel/softirq.c:405 (discriminator 1)) [ 47.829554][ C2] do_softirq (kernel/softirq.c:523 (discriminator 19) kernel/softirq.c:510 (discriminator 19)) [ 47.829557][ C2] [ 47.829558][ C2] [ 47.829558][ C2] __local_bh_enable_ip (kernel/softirq.c:450) [ 47.829561][ C2] __neigh_event_send (./include/linux/bottom_half.h:33 (discriminator 2) net/core/neighbour.c:1276 (discriminator 2)) [ 47.829563][ C2] ? warn_bogus_irq_restore (kernel/locking/irqflag-debug.c:8) [ 47.829567][ C2] ? sync_exp_reset_tree_hotplug (kernel/rcu/tree_exp.h:96) [ 47.829571][ C2] neigh_resolve_output (./include/net/neighbour.h:480 ./include/net/neighbour.h:486 ./include/net/neighbour.h:484 net/core/neighbour.c:1600) [ 47.829574][ C2] ip_finish_output2 (./include/net/neighbour.h:560 (discriminator 3) net/ipv4/ip_output.c:236 (discriminator 3)) [ 47.829577][ C2] ? ip_dst_mtu_maybe_forward (./include/linux/rcupdate.h:873 ./include/net/ip.h:504) [ 47.829580][ C2] ? ip4_dst_hoplimit (./include/net/dst.h:582 (discriminator 4) ./include/net/dst.h:587 (discriminator 4) ./include/net/route.h:393 (discriminator 4)) [ 47.829582][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 47.829587][ C2] ip_output (./include/linux/netfilter.h:314 net/ipv4/ip_output.c:437) [ 47.829590][ C2] ? ip_finish_output (./include/linux/cgroup.h:868) [ 47.829592][ C2] ? __ip_make_skb (net/ipv4/ip_output.c:1386 net/ipv4/ip_output.c:1497) [ 47.829599][ C2] 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)) [ 47.829602][ C2] raw_sendmsg (net/ipv4/raw.c:657) [ 47.829606][ C2] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 47.829609][ C2] ? raw_send_hdrinc (./include/net/ip.h:581 (discriminator 1)) [ 47.829610][ C2] ? folio_add_lru_vma (mm/swap.c:581) [ 47.829615][ C2] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4069 (discriminator 3) kernel/rcu/tree.c:4061 (discriminator 3)) [ 47.829620][ C2] ? rcu_read_unlock (./include/linux/rcupdate.h:869 (discriminator 5)) [ 47.829624][ C2] ? 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) [ 47.829628][ C2] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 47.829630][ C2] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 47.829636][ C2] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 47.829638][ C2] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 47.829642][ C2] __sys_sendto (net/socket.c:775 (discriminator 4) net/socket.c:790 (discriminator 4) net/socket.c:2252 (discriminator 4)) [ 47.829645][ C2] ? __ia32_sys_getpeername (net/socket.c:2206) [ 47.829647][ C2] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5574) [ 47.829658][ C2] ? exc_page_fault (arch/x86/mm/fault.c:1483 arch/x86/mm/fault.c:1536) [ 47.829663][ C2] __x64_sys_sendto (net/socket.c:2259 net/socket.c:2255 net/socket.c:2255) [ 47.829665][ C2] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 22)) [ 47.829669][ C2] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 47.829670][ C2] ? do_syscall_64 (./include/linux/entry-common.h:177 arch/x86/entry/syscall_64.c:89) [ 47.829672][ C2] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 47.829674][ C2] ? trace_hardirqs_off (kernel/trace/trace_preemptirq.c:104 (discriminator 1)) [ 47.829676][ C2] ? exc_page_fault (arch/x86/mm/fault.c:1489 (discriminator 3) arch/x86/mm/fault.c:1536 (discriminator 3)) [ 47.829679][ C2] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 47.829681][ C2] RIP: 0033:0x7f314085e54e [ 47.829684][ C2] 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 [ 47.829686][ C2] RSP: 002b:00007ffd102706e0 EFLAGS: 00000202 ORIG_RAX: 000000000000002c [ 47.829689][ C2] RAX: ffffffffffffffda RBX: 000000000000119c RCX: 00007f314085e54e [ 47.829691][ C2] RDX: 000000000000119c RSI: 000055d371fc80a4 RDI: 0000000000000005 [ 47.829692][ C2] RBP: 00007ffd102706f0 R08: 000055d371fda320 R09: 0000000000000010 [ 47.829693][ C2] R10: 0000000000000000 R11: 0000000000000202 R12: 431bde82d7b634db Finger prints: vxlan_fdb_create:vxlan_fdb_update:vxlan_snoop:vxlan_rcv:udp_queue_rcv_one_skb