====================================== | [ 618.989413][ C1] #4: ffffffffba57dd40 (rcu_read_lock){....}-{1:3}, at: ip6_input (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:840 (discriminator 2) net/ipv6/ip6_input.c:544 (discriminator 2)) | [ 618.989719][ C1] #5: ff1100000d172f68 (&vxlan->hash_lock){+.-.}-{3:3}, at: vxlan_snoop (./include/linux/spinlock.h:342 drivers/net/vxlan/vxlan_core.c:1487) vxlan | [ 618.990071][ C1] | [ 618.990071][ C1] stack backtrace: [ 618.990291][ C1] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 618.990293][ C1] Call Trace: [ 618.990295][ C1] [ 618.990296][ C1] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 618.990302][ C1] lockdep_rcu_suspicious.cold (kernel/locking/lockdep.c:6876) [ 618.990307][ C1] vxlan_fdb_create (drivers/net/vxlan/vxlan_core.c:872 (discriminator 8)) vxlan [ 618.990313][ 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 [ 618.990319][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 618.990322][ C1] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 618.990325][ C1] ? vxlan_open (drivers/net/vxlan/vxlan_core.c:3030) vxlan [ 618.990330][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 618.990335][ C1] vxlan_fdb_update (drivers/net/vxlan/vxlan_core.c:1095 drivers/net/vxlan/vxlan_core.c:1138) vxlan [ 618.990341][ C1] ? vxlan_fdb_create (./arch/x86/include/asm/bitops.h:202 (discriminator 1)) vxlan [ 618.990345][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 618.990347][ 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) [ 618.990351][ C1] vxlan_snoop (drivers/net/vxlan/vxlan_core.c:1491) vxlan [ 618.990359][ C1] vxlan_rcv (drivers/net/vxlan/vxlan_core.c:1634 (discriminator 1) drivers/net/vxlan/vxlan_core.c:1772 (discriminator 1)) vxlan [ 618.990368][ C1] ? encap_bypass_if_local (drivers/net/vxlan/vxlan_core.c:2353) vxlan [ 618.990372][ C1] ? __udp6_lib_lookup (net/ipv6/udp.c:392) [ 618.990378][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 618.990382][ C1] ? encap_bypass_if_local (drivers/net/vxlan/vxlan_core.c:2353) vxlan [ 618.990386][ C1] ? udpv6_queue_rcv_one_skb (net/ipv6/udp.c:842) [ 618.990389][ C1] udpv6_queue_rcv_one_skb (net/ipv6/udp.c:842) [ 618.990393][ C1] udp6_unicast_rcv_skb (net/ipv6/udp.c:1029) [ 618.990396][ C1] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 618.990403][ C1] ip6_input_finish (net/ipv6/ip6_input.c:534) [ 618.990406][ C1] ip6_input (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv6/ip6_input.c:545) [ 618.990408][ C1] ? ip6_input_finish (net/ipv6/ip6_input.c:527 (discriminator 46)) [ 618.990411][ C1] ? ip6_rcv_core (./include/linux/rcupdate.h:873 net/ipv6/ip6_input.c:328) [ 618.990416][ C1] ipv6_rcv (./include/net/dst.h:480 (discriminator 4) net/ipv6/ip6_input.c:119 (discriminator 4) ./include/linux/netfilter.h:325 (discriminator 4) ./include/linux/netfilter.h:319 (discriminator 4) net/ipv6/ip6_input.c:351 (discriminator 4)) [ 618.990418][ C1] ? ip6_rcv_core (net/ipv6/ip6_input.c:211 (discriminator 96)) [ 618.990422][ C1] ? mark_usage (kernel/locking/lockdep.c:4674) [ 618.990424][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 618.990428][ C1] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6673 (discriminator 2)) [ 618.990430][ C1] __netif_receive_skb_one_core (net/core/dev.c:6234) [ 618.990432][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 618.990435][ C1] ? __netif_receive_skb_list_core (net/core/dev.c:6280 (discriminator 2)) [ 618.990437][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 618.990443][ C1] process_backlog (net/core/dev.c:6675) [ 618.990448][ C1] __napi_poll (net/core/dev.c:7734) [ 618.990451][ C1] net_rx_action (net/core/dev.c:7797 net/core/dev.c:7954) [ 618.990455][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 618.990458][ C1] ? __napi_poll (./include/net/gro.h:507) [ 618.990461][ C1] ? trace_rcu_this_gp.isra.0 (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3) ./include/trace/events/rcu.h:107 (discriminator 3) kernel/rcu/tree.c:992 (discriminator 3)) [ 618.990465][ C1] ? trace_rcu_quiescent_state_report (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3) ./include/trace/events/rcu.h:368 (discriminator 3)) [ 618.990471][ C1] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 2) kernel/locking/lockdep.c:4411 (discriminator 2)) [ 618.990473][ C1] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 618.990476][ C1] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:178 (discriminator 6) kernel/locking/spinlock.c:198 (discriminator 6)) [ 618.990478][ C1] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 618.990482][ C1] handle_softirqs (kernel/softirq.c:622) [ 618.990487][ C1] ? _local_bh_enable (kernel/softirq.c:405 (discriminator 1)) [ 618.990491][ C1] __irq_exit_rcu (kernel/softirq.c:656 kernel/softirq.c:496 kernel/softirq.c:735) [ 618.990493][ C1] irq_exit_rcu (kernel/softirq.c:752) [ 618.990495][ C1] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1062 (discriminator 37) arch/x86/kernel/apic/apic.c:1062 (discriminator 37)) [ 618.990497][ C1] [ 618.990498][ C1] [ 618.990499][ C1] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:674) [ 618.990502][ C1] RIP: 0010:lock_release (./arch/x86/include/asm/irqflags.h:42 ./arch/x86/include/asm/irqflags.h:119 ./arch/x86/include/asm/irqflags.h:159 kernel/locking/lockdep.c:5892 kernel/locking/lockdep.c:5875) [ 618.990504][ C1] Code: 4b 37 04 83 f8 01 0f 85 fc 00 00 00 9c 58 f6 c4 02 0f 85 11 01 00 00 41 f7 c7 00 02 00 00 0f 84 c7 00 00 00 fb 4c 8b 7c 24 18 <48> 8b 5c 24 08 4c 8b 74 24 10 48 83 c4 20 c3 65 8b 05 82 06 37 04 All code ======== 0: 4b 37 rex.WXB (bad) 2: 04 83 add $0x83,%al 4: f8 clc 5: 01 0f add %ecx,(%rdi) 7: 85 fc test %edi,%esp 9: 00 00 add %al,(%rax) b: 00 9c 58 f6 c4 02 0f add %bl,0xf02c4f6(%rax,%rbx,2) 12: 85 11 test %edx,(%rcx) 14: 01 00 add %eax,(%rax) 16: 00 41 f7 add %al,-0x9(%rcx) 19: c7 00 02 00 00 0f movl $0xf000002,(%rax) 1f: 84 c7 test %al,%bh 21: 00 00 add %al,(%rax) 23: 00 fb add %bh,%bl 25: 4c 8b 7c 24 18 mov 0x18(%rsp),%r15 2a:* 48 8b 5c 24 08 mov 0x8(%rsp),%rbx <-- trapping instruction 2f: 4c 8b 74 24 10 mov 0x10(%rsp),%r14 34: 48 83 c4 20 add $0x20,%rsp 38: c3 ret 39: 65 8b 05 82 06 37 04 mov %gs:0x4370682(%rip),%eax # 0x43706c2 Code starting with the faulting instruction =========================================== 0: 48 8b 5c 24 08 mov 0x8(%rsp),%rbx 5: 4c 8b 74 24 10 mov 0x10(%rsp),%r14 a: 48 83 c4 20 add $0x20,%rsp e: c3 ret f: 65 8b 05 82 06 37 04 mov %gs:0x4370682(%rip),%eax # 0x4370698 [ 618.990506][ C1] RSP: 0018:ffa000000fd07380 EFLAGS: 00000206 [ 618.990508][ C1] RAX: 0000000000000046 RBX: ffffffffba775620 RCX: 0000000000000001 [ 618.990509][ C1] RDX: 0000000000000003 RSI: ffffffffba001084 RDI: ffffffffb9a7a960 [ 618.990510][ C1] RBP: 0000000000092cc0 R08: 0000000000000001 R09: ff1100000a9ed260 [ 618.990511][ C1] R10: 0000000000000001 R11: 0000000000000001 R12: ff11000012e694d8 [ 618.990512][ C1] R13: 0000000000092cc0 R14: ffffffffb7af5256 R15: 0000000000000001 [ 618.990513][ C1] ? kmem_cache_alloc_noprof (./include/linux/sched/mm.h:318 mm/slub.c:4565 mm/slub.c:4925 mm/slub.c:4959) [ 618.990521][ C1] kmem_cache_alloc_noprof (./include/linux/sched/mm.h:318 mm/slub.c:4565 mm/slub.c:4925 mm/slub.c:4959) [ 618.990523][ C1] ? __alloc_object (mm/kmemleak.c:494 (discriminator 1) mm/kmemleak.c:676 (discriminator 1)) [ 618.990528][ C1] __alloc_object (mm/kmemleak.c:494 (discriminator 1) mm/kmemleak.c:676 (discriminator 1)) [ 618.990531][ C1] __create_object (mm/kmemleak.c:790) [ 618.990532][ C1] ? kasan_save_track (mm/kasan/common.c:78) [ 618.990537][ C1] kmem_cache_alloc_noprof (./include/linux/kmemleak.h:44 mm/slub.c:4625 mm/slub.c:4945 mm/slub.c:4959) [ 618.990539][ C1] ? ptlock_alloc (mm/memory.c:7531 (discriminator 7)) [ 618.990544][ C1] ptlock_alloc (mm/memory.c:7531 (discriminator 7)) [ 618.990546][ C1] pte_alloc_one (./include/linux/mm.h:3775 ./include/linux/mm.h:3824 ./include/asm-generic/pgalloc.h:79 arch/x86/mm/pgtable.c:18) [ 618.990549][ C1] __pte_alloc (mm/memory.c:453) [ 618.990553][ C1] ? pmd_install (mm/memory.c:445) [ 618.990555][ C1] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4069 (discriminator 3) kernel/rcu/tree.c:4061 (discriminator 3)) [ 618.990557][ C1] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 618.990561][ C1] copy_pte_range (mm/memory.c:1253 (discriminator 3)) [ 618.990567][ C1] ? copy_present_ptes (./include/linux/page-flags.h:226 (discriminator 3)) [ 618.990569][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 618.990571][ C1] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 618.990574][ C1] ? __rwlock_init (kernel/locking/spinlock_debug.c:48) [ 618.990578][ C1] ? _raw_spin_unlock (./include/linux/spinlock_api_smp.h:169 (discriminator 1) kernel/locking/spinlock.c:190 (discriminator 1)) [ 618.990581][ C1] copy_p4d_range (mm/memory.c:1408 mm/memory.c:1445 mm/memory.c:1469) [ 618.990588][ C1] copy_page_range (mm/memory.c:1555) [ 618.990592][ C1] ? mas_wr_store_entry (lib/maple_tree.c:366) [ 618.990595][ C1] ? copy_p4d_range (mm/memory.c:1420) [ 618.990599][ C1] ? __vma_start_exclude_readers (mm/mmap_lock.c:126 (discriminator 38)) [ 618.990604][ C1] dup_mmap (mm/mmap.c:1840) [ 618.990611][ C1] ? mmap_read_lock_maybe_expand (./include/linux/rwsem.h:221 (discriminator 1)) [ 618.990613][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 618.990615][ C1] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 618.990618][ C1] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 618.990620][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 618.990622][ C1] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 618.990628][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 618.990630][ C1] ? copy_process (kernel/fork.c:1542 kernel/fork.c:1595 kernel/fork.c:2289) [ 618.990633][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 618.990638][ C1] copy_process (kernel/fork.c:1543 kernel/fork.c:1595 kernel/fork.c:2289) [ 618.990646][ C1] ? pidfd_prepare (./include/linux/list.h:1021 (discriminator 3) ./include/linux/pid.h:98 (discriminator 3) kernel/fork.c:1918 (discriminator 3)) [ 618.990650][ C1] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4069 (discriminator 3) kernel/rcu/tree.c:4061 (discriminator 3)) [ 618.990651][ C1] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4069 (discriminator 3) kernel/rcu/tree.c:4061 (discriminator 3)) [ 618.990653][ C1] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 618.990657][ C1] kernel_clone (kernel/fork.c:2748) [ 618.990660][ C1] ? create_io_thread (kernel/fork.c:2686) [ 618.990665][ C1] ? __might_fault (mm/memory.c:7292 (discriminator 5)) [ 618.990667][ C1] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 618.990671][ C1] __do_sys_clone (kernel/fork.c:2889) [ 618.990674][ C1] ? kernel_clone (./include/trace/events/sched.h:396 (discriminator 19)) [ 618.990682][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 618.990684][ C1] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 22)) [ 618.990688][ C1] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 618.990690][ C1] ? trace_hardirqs_off (kernel/trace/trace_preemptirq.c:104 (discriminator 1)) [ 618.990692][ C1] ? exc_page_fault (arch/x86/mm/fault.c:1489 (discriminator 3) arch/x86/mm/fault.c:1536 (discriminator 3)) [ 618.990694][ C1] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 618.990696][ C1] RIP: 0033:0x7ffb162eb126 [ 618.990698][ C1] Code: 7d e0 e8 7d af f5 ff 45 31 c0 31 d2 31 f6 64 48 8b 04 25 10 00 00 00 bf 11 00 20 01 4c 8d 90 d0 02 00 00 b8 38 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 5a 89 c3 85 c0 75 2f 64 48 8b 04 25 10 00 00 All code ======== 0: 7d e0 jge 0xffffffffffffffe2 2: e8 7d af f5 ff call 0xfffffffffff5af84 7: 45 31 c0 xor %r8d,%r8d a: 31 d2 xor %edx,%edx c: 31 f6 xor %esi,%esi e: 64 48 8b 04 25 10 00 mov %fs:0x10,%rax 15: 00 00 17: bf 11 00 20 01 mov $0x1200011,%edi 1c: 4c 8d 90 d0 02 00 00 lea 0x2d0(%rax),%r10 23: b8 38 00 00 00 mov $0x38,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 5a ja 0x8c 32: 89 c3 mov %eax,%ebx 34: 85 c0 test %eax,%eax 36: 75 2f jne 0x67 38: 64 fs 39: 48 rex.W 3a: 8b .byte 0x8b 3b: 04 25 add $0x25,%al 3d: 10 00 adc %al,(%rax) ... Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 5a ja 0x62 8: 89 c3 mov %eax,%ebx a: 85 c0 test %eax,%eax c: 75 2f jne 0x3d e: 64 fs f: 48 rex.W 10: 8b .byte 0x8b 11: 04 25 add $0x25,%al 13: 10 00 adc %al,(%rax) ... [ 618.990700][ C1] RSP: 002b:00007fff522fce40 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 [ 618.990701][ C1] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007ffb162eb126 [ 618.990702][ C1] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 [ 618.990703][ C1] RBP: 00007fff522fce60 R08: 0000000000000000 R09: 0000000000000020 [ 618.990703][ C1] R10: 00007ffb16229e50 R11: 0000000000000246 R12: 000055aa68705a90 Finger prints: vxlan_fdb_create:vxlan_fdb_update:vxlan_snoop:vxlan_rcv:udpv6_queue_rcv_one_skb