======================================
| [ 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