====================================== | [ 23.227032][ C0] #3: ffffffffaa577d20 (rcu_read_lock){....}-{1:3}, at: unwind_next_frame (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:838 (discriminator 2) ./include/linux/rcupdate.h:1181 (discriminator 2) arch/x86/kernel/unwind_orc.c:495 (discriminator 2)) | [ 23.227197][ C0] #4: ffffffffaa577c00 (rcu_callback){....}-{0:0}, at: rcu_do_batch (./include/linux/rcupdate.h:300 (discriminator 2) kernel/rcu/tree.c:2611 (discriminator 2)) | [ 23.227359][ C0] | [ 23.227359][ C0] stack backtrace: [ 23.227479][ C0] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 23.227481][ C0] Call Trace: [ 23.227483][ C0] [ 23.227484][ C0] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 23.227489][ C0] print_usage_bug.part.0.cold (kernel/locking/lockdep.c:4042) [ 23.227492][ C0] ? filter_irq_stacks (kernel/stacktrace.c:402) [ 23.227495][ C0] mark_lock_irq (kernel/locking/lockdep.c:4013 kernel/locking/lockdep.c:4056 kernel/locking/lockdep.c:4267) [ 23.227497][ C0] ? sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1061 (discriminator 37) arch/x86/kernel/apic/apic.c:1061 (discriminator 37)) [ 23.227499][ C0] ? asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697) [ 23.227501][ C0] ? save_trace (kernel/locking/lockdep.c:589) [ 23.227503][ C0] ? get_user_pages_remote (mm/gup.c:1773 (discriminator 1) mm/gup.c:2614 (discriminator 1)) [ 23.227506][ C0] mark_lock (kernel/locking/lockdep.c:4753) [ 23.227508][ C0] mark_usage (kernel/locking/lockdep.c:4642) [ 23.227510][ C0] __lock_acquire (kernel/locking/lockdep.c:5191) [ 23.227511][ C0] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 23.227513][ C0] ? rcu_do_batch (./include/linux/rcupdate.h:310 (discriminator 2) kernel/rcu/tree.c:2619 (discriminator 2)) [ 23.227516][ C0] lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 23.227517][ C0] ? tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 23.227519][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 23.227521][ C0] ? lock_acquire (./include/trace/events/lock.h:24 (discriminator 22) kernel/locking/lockdep.c:5831 (discriminator 22)) [ 23.227523][ C0] _raw_spin_lock (./include/linux/spinlock_api_smp.h:158 (discriminator 1) kernel/locking/spinlock.c:158 (discriminator 1)) [ 23.227525][ C0] ? tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 23.227526][ C0] tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 23.227528][ C0] tcf_action_rcu_free (net/sched/act_api.c:367 net/sched/act_api.c:378) [ 23.227529][ C0] ? rcu_do_batch (./include/linux/rcupdate.h:310 (discriminator 2) kernel/rcu/tree.c:2619 (discriminator 2)) [ 23.227531][ C0] rcu_do_batch (kernel/rcu/tree.c:2617) [ 23.227534][ C0] ? trace_rcu_batch_end (./include/trace/events/rcu.h:714 (discriminator 19)) [ 23.227536][ C0] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 2) kernel/locking/lockdep.c:4411 (discriminator 2)) [ 23.227537][ C0] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 23.227539][ C0] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:178 (discriminator 6) kernel/locking/spinlock.c:198 (discriminator 6)) [ 23.227540][ C0] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:179 (discriminator 1) kernel/locking/spinlock.c:198 (discriminator 1)) [ 23.227542][ C0] rcu_core (kernel/rcu/tree.c:2869) [ 23.227544][ C0] handle_softirqs (kernel/softirq.c:622) [ 23.227546][ C0] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 23.227549][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 23.227550][ C0] ? _local_bh_enable (kernel/softirq.c:405 (discriminator 1)) [ 23.227552][ C0] __irq_exit_rcu (kernel/softirq.c:656 kernel/softirq.c:496 kernel/softirq.c:735) [ 23.227554][ C0] irq_exit_rcu (kernel/softirq.c:752) [ 23.227555][ C0] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1061 (discriminator 37) arch/x86/kernel/apic/apic.c:1061 (discriminator 37)) [ 23.227557][ C0] [ 23.227558][ C0] [ 23.227558][ C0] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697) [ 23.227560][ C0] RIP: 0010:lock_acquire.part.0 (./arch/x86/include/asm/irqflags.h:158 (discriminator 1) kernel/locking/lockdep.c:5871 (discriminator 1)) [ 23.227563][ C0] Code: ff 65 0f c1 05 37 d9 33 04 83 f8 01 4c 8b 14 24 0f 85 30 01 00 00 9c 58 f6 c4 02 0f 85 4d 01 00 00 4d 85 d2 0f 85 16 01 00 00 <48> 8b 44 24 30 65 48 2b 05 a9 92 33 04 0f 85 43 01 00 00 48 83 c4 All code ======== 0: ff 65 0f jmp *0xf(%rbp) 3: c1 05 37 d9 33 04 83 roll $0x83,0x433d937(%rip) # 0x433d941 a: f8 clc b: 01 4c 8b 14 add %ecx,0x14(%rbx,%rcx,4) f: 24 0f and $0xf,%al 11: 85 30 test %esi,(%rax) 13: 01 00 add %eax,(%rax) 15: 00 9c 58 f6 c4 02 0f add %bl,0xf02c4f6(%rax,%rbx,2) 1c: 85 4d 01 test %ecx,0x1(%rbp) 1f: 00 00 add %al,(%rax) 21: 4d 85 d2 test %r10,%r10 24: 0f 85 16 01 00 00 jne 0x140 2a:* 48 8b 44 24 30 mov 0x30(%rsp),%rax <-- trapping instruction 2f: 65 48 2b 05 a9 92 33 sub %gs:0x43392a9(%rip),%rax # 0x43392e0 36: 04 37: 0f 85 43 01 00 00 jne 0x180 3d: 48 rex.W 3e: 83 .byte 0x83 3f: c4 .byte 0xc4 Code starting with the faulting instruction =========================================== 0: 48 8b 44 24 30 mov 0x30(%rsp),%rax 5: 65 48 2b 05 a9 92 33 sub %gs:0x43392a9(%rip),%rax # 0x43392b6 c: 04 d: 0f 85 43 01 00 00 jne 0x156 13: 48 rex.W 14: 83 .byte 0x83 15: c4 .byte 0xc4 [ 23.227564][ C0] RSP: 0018:ffa0000000857460 EFLAGS: 00000206 [ 23.227567][ C0] RAX: 0000000000000046 RBX: 0000000000000000 RCX: 32774272f7e67d87 [ 23.227568][ C0] RDX: 0000000000000001 RSI: ffffffffa9febde8 RDI: ffffffffa9a6f6c0 [ 23.227569][ C0] RBP: 0000000000000000 R08: 0000000000000001 R09: ff1100000ca351a8 [ 23.227570][ C0] R10: 0000000000000200 R11: 0000000000000001 R12: ffffffffaa577d20 [ 23.227570][ C0] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000002 [ 23.227573][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 23.227574][ C0] ? lock_acquire (./include/trace/events/lock.h:24 (discriminator 22) kernel/locking/lockdep.c:5831 (discriminator 22)) [ 23.227576][ C0] unwind_next_frame (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:838 (discriminator 2) ./include/linux/rcupdate.h:1181 (discriminator 2) arch/x86/kernel/unwind_orc.c:495 (discriminator 2)) [ 23.227577][ C0] ? unwind_next_frame (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:838 (discriminator 2) ./include/linux/rcupdate.h:1181 (discriminator 2) arch/x86/kernel/unwind_orc.c:495 (discriminator 2)) [ 23.227579][ C0] ? arch_stack_walk (./arch/x86/include/asm/unwind.h:64 arch/x86/kernel/stacktrace.c:24) [ 23.227582][ C0] ? stack_access_ok (./arch/x86/include/asm/stacktrace.h:55) [ 23.227584][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 23.227585][ C0] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 23.227587][ C0] ? get_stack_info_noinstr (arch/x86/kernel/dumpstack_64.c:173) [ 23.227589][ C0] __unwind_start (arch/x86/kernel/unwind_orc.c:787) [ 23.227591][ C0] ? write_profile (profile.c:?) [ 23.227593][ C0] arch_stack_walk (./arch/x86/include/asm/unwind.h:64 arch/x86/kernel/stacktrace.c:24) [ 23.227595][ C0] ? arch_stack_walk (./arch/x86/include/asm/unwind.h:64 arch/x86/kernel/stacktrace.c:24) [ 23.227598][ C0] stack_trace_save (kernel/stacktrace.c:122 (discriminator 1)) [ 23.227600][ C0] ? filter_irq_stacks (kernel/stacktrace.c:402) [ 23.227602][ C0] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 23.227603][ C0] ? check_object (mm/slub.c:1407 (discriminator 1) mm/slub.c:1514 (discriminator 1)) [ 23.227606][ C0] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 23.227607][ C0] set_track_prepare (mm/slub.c:1037) [ 23.227610][ C0] ___slab_alloc (mm/slub.c:1067 mm/slub.c:4480) [ 23.227612][ C0] ? vm_area_dup (mm/vma_init.c:123 (discriminator 7)) [ 23.227615][ C0] ? vm_area_dup (mm/vma_init.c:123 (discriminator 7)) [ 23.227616][ C0] kmem_cache_alloc_noprof (mm/slub.c:4511 mm/slub.c:4887 mm/slub.c:4906) [ 23.227618][ C0] ? __vma_start_exclude_readers (./arch/x86/include/asm/bitops.h:202 (discriminator 1) ./arch/x86/include/asm/bitops.h:232 (discriminator 1) ./include/asm-generic/bitops/instrumented-non-atomic.h:142 (discriminator 1) ./include/linux/thread_info.h:133 (discriminator 1) ./include/linux/sched.h:2069 (discriminator 1) ./include/linux/sched/signal.h:394 (discriminator 1) ./include/linux/sched/signal.h:413 (discriminator 1) mm/mmap_lock.c:126 (discriminator 1)) [ 23.227621][ C0] vm_area_dup (mm/vma_init.c:123 (discriminator 7)) [ 23.227623][ C0] dup_mmap (mm/mmap.c:1786) [ 23.227626][ C0] ? mmap_read_lock_maybe_expand (./include/linux/rwsem.h:221 (discriminator 1)) [ 23.227628][ C0] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 23.227629][ C0] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 23.227631][ C0] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 23.227632][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 23.227634][ C0] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 23.227636][ C0] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 23.227638][ C0] ? copy_process (kernel/fork.c:1533 kernel/fork.c:1586 kernel/fork.c:2264) [ 23.227639][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 23.227642][ C0] copy_process (kernel/fork.c:1534 kernel/fork.c:1586 kernel/fork.c:2264) [ 23.227643][ C0] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4040 (discriminator 3) kernel/rcu/tree.c:4032 (discriminator 3)) [ 23.227646][ C0] ? pidfd_prepare (./include/linux/list.h:1021 (discriminator 3)) [ 23.227649][ C0] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4040 (discriminator 3) kernel/rcu/tree.c:4032 (discriminator 3)) [ 23.227650][ C0] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4040 (discriminator 3) kernel/rcu/tree.c:4032 (discriminator 3)) [ 23.227652][ C0] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 23.227654][ C0] kernel_clone (kernel/fork.c:2722) [ 23.227655][ C0] ? create_io_thread (kernel/fork.c:2660) [ 23.227658][ C0] ? __might_fault (mm/memory.c:7340 (discriminator 5)) [ 23.227659][ C0] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 23.227662][ C0] __do_sys_clone (kernel/fork.c:2863) [ 23.227663][ C0] ? kernel_clone (./include/trace/events/sched.h:396 (discriminator 19)) [ 23.227666][ C0] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 23.227668][ C0] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 22)) [ 23.227671][ C0] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 23.227673][ C0] ? trace_hardirqs_off (kernel/trace/trace_preemptirq.c:104 (discriminator 1)) [ 23.227674][ C0] ? exc_page_fault (arch/x86/mm/fault.c:1480 (discriminator 3) arch/x86/mm/fault.c:1527 (discriminator 3)) [ 23.227676][ C0] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 23.227677][ C0] RIP: 0033:0x7f246847e226 [ 23.227680][ C0] Code: 7d e0 e8 7d a4 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 a4 f5 ff call 0xfffffffffff5a484 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) ... [ 23.227680][ C0] RSP: 002b:00007ffd38253f80 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 [ 23.227682][ C0] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007f246847e226 [ 23.227683][ C0] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 [ 23.227684][ C0] RBP: 00007ffd38253fa0 R08: 0000000000000000 R09: 0000000000000200 [ 23.227685][ C0] R10: 00007f24683bbe50 R11: 0000000000000246 R12: 00007ffd38254720 Finger prints: mark_lock_irq:mark_lock:mark_usage:__lock_acquire:_raw_spin_lock