====================================== | [ 24.460441][ C2] #2: ffffffffac977d20 (rcu_read_lock){....}-{1:3}, at: is_module_text_address (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:838 (discriminator 2) ./include/linux/rcupdate.h:1181 (discriminator 2) kernel/module/main.c:3921 (discriminator 2)) | [ 24.460616][ C2] #3: ffffffffac977c00 (rcu_callback){....}-{0:0}, at: rcu_do_batch (./include/linux/rcupdate.h:300 (discriminator 2) kernel/rcu/tree.c:2611 (discriminator 2)) | [ 24.460827][ C2] | [ 24.460827][ C2] stack backtrace: [ 24.460936][ C2] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 24.460939][ C2] Call Trace: [ 24.460940][ C2] [ 24.460941][ C2] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 24.460946][ C2] print_usage_bug.part.0.cold (kernel/locking/lockdep.c:4042) [ 24.460949][ C2] ? filter_irq_stacks (kernel/stacktrace.c:402) [ 24.460951][ C2] mark_lock_irq (kernel/locking/lockdep.c:4013 kernel/locking/lockdep.c:4056 kernel/locking/lockdep.c:4267) [ 24.460953][ C2] ? sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1061 (discriminator 37) arch/x86/kernel/apic/apic.c:1061 (discriminator 37)) [ 24.460955][ C2] ? asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697) [ 24.460957][ C2] ? save_trace (kernel/locking/lockdep.c:589) [ 24.460959][ C2] ? mmu_notifier_unregister (./include/linux/list.h:999 ./include/linux/rculist.h:237 mm/mmu_notifier.c:869) [ 24.460962][ C2] mark_lock (kernel/locking/lockdep.c:4753) [ 24.460964][ C2] mark_usage (kernel/locking/lockdep.c:4642) [ 24.460966][ C2] __lock_acquire (kernel/locking/lockdep.c:5191) [ 24.460967][ C2] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 24.460968][ C2] ? rcu_do_batch (./include/linux/rcupdate.h:310 (discriminator 2) kernel/rcu/tree.c:2619 (discriminator 2)) [ 24.460971][ C2] lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 24.460973][ C2] ? tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 24.460974][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 24.460976][ C2] ? lock_acquire (./include/trace/events/lock.h:24 (discriminator 22) kernel/locking/lockdep.c:5831 (discriminator 22)) [ 24.460978][ C2] _raw_spin_lock (./include/linux/spinlock_api_smp.h:158 (discriminator 1) kernel/locking/spinlock.c:158 (discriminator 1)) [ 24.460980][ C2] ? tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 24.460982][ C2] tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 24.460983][ C2] tcf_action_rcu_free (net/sched/act_api.c:367 net/sched/act_api.c:378) [ 24.460985][ C2] ? rcu_do_batch (./include/linux/rcupdate.h:310 (discriminator 2) kernel/rcu/tree.c:2619 (discriminator 2)) [ 24.460987][ C2] rcu_do_batch (kernel/rcu/tree.c:2617) [ 24.460989][ C2] ? trace_rcu_batch_end (./include/trace/events/rcu.h:714 (discriminator 19)) [ 24.460992][ C2] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 24.460993][ C2] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 2) kernel/locking/lockdep.c:4411 (discriminator 2)) [ 24.460995][ C2] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 24.460997][ C2] rcu_core (kernel/rcu/tree.c:2869) [ 24.460999][ C2] handle_softirqs (kernel/softirq.c:622) [ 24.461000][ C2] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 24.461003][ C2] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 24.461004][ C2] ? _local_bh_enable (kernel/softirq.c:405 (discriminator 1)) [ 24.461007][ C2] __irq_exit_rcu (kernel/softirq.c:656 kernel/softirq.c:496 kernel/softirq.c:735) [ 24.461008][ C2] irq_exit_rcu (kernel/softirq.c:752) [ 24.461010][ C2] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1061 (discriminator 37) arch/x86/kernel/apic/apic.c:1061 (discriminator 37)) [ 24.461011][ C2] [ 24.461012][ C2] [ 24.461013][ C2] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 24.461015][ C2] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697) [ 24.461016][ C2] RIP: 0010:lock_acquire.part.0 (./arch/x86/include/asm/irqflags.h:158 (discriminator 1) kernel/locking/lockdep.c:5871 (discriminator 1)) [ 24.461019][ C2] 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 [ 24.461020][ C2] RSP: 0018:ffa00000006f6ab0 EFLAGS: 00000206 [ 24.461023][ C2] RAX: 0000000000000046 RBX: 0000000000000000 RCX: abfc63c6628187ed [ 24.461024][ C2] RDX: 0000000000000001 RSI: ffffffffac3ebde8 RDI: ffffffffabe6f6c0 [ 24.461025][ C2] RBP: 0000000000000000 R08: 0000000000000001 R09: ff1100000d40ae80 [ 24.461026][ C2] R10: 0000000000000200 R11: 0000000000000001 R12: ffffffffac977d20 [ 24.461027][ C2] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000002 [ 24.461029][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 24.461031][ C2] ? lock_acquire (./include/trace/events/lock.h:24 (discriminator 22) kernel/locking/lockdep.c:5831 (discriminator 22)) [ 24.461033][ C2] is_module_text_address (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:838 (discriminator 2) ./include/linux/rcupdate.h:1181 (discriminator 2) kernel/module/main.c:3921 (discriminator 2)) [ 24.461035][ C2] ? is_module_text_address (./include/linux/rcupdate.h:300 (discriminator 2) ./include/linux/rcupdate.h:838 (discriminator 2) ./include/linux/rcupdate.h:1181 (discriminator 2) kernel/module/main.c:3921 (discriminator 2)) [ 24.461036][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 24.461038][ C2] kernel_text_address (kernel/extable.c:119 kernel/extable.c:94) [ 24.461040][ C2] __kernel_text_address (kernel/extable.c:79) [ 24.461042][ C2] ? write_profile (profile.c:?) [ 24.461044][ C2] unwind_get_return_address (arch/x86/kernel/unwind_orc.c:385 arch/x86/kernel/unwind_orc.c:380) [ 24.461046][ C2] arch_stack_walk (arch/x86/kernel/stacktrace.c:26) [ 24.461050][ C2] stack_trace_save (kernel/stacktrace.c:122 (discriminator 1)) [ 24.461053][ C2] ? filter_irq_stacks (kernel/stacktrace.c:402) [ 24.461054][ C2] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4040 (discriminator 3) kernel/rcu/tree.c:4032 (discriminator 3)) [ 24.461056][ C2] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 24.461058][ C2] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 24.461059][ C2] kasan_save_stack (mm/kasan/common.c:57) [ 24.461061][ C2] ? kasan_save_stack (mm/kasan/common.c:57) [ 24.461063][ C2] ? kasan_record_aux_stack (mm/kasan/generic.c:556) [ 24.461065][ C2] ? kvfree_call_rcu (mm/slab_common.c:1970) [ 24.461067][ C2] ? mas_wr_node_store (lib/maple_tree.c:1153 (discriminator 1) lib/maple_tree.c:1595 (discriminator 1) lib/maple_tree.c:3201 (discriminator 1)) [ 24.461070][ C2] ? mas_store_prealloc (lib/maple_tree.c:4936) [ 24.461072][ C2] ? vma_complete (mm/vma.h:616 mm/vma.h:623 mm/vma.c:359) [ 24.461073][ C2] ? __split_vma (mm/vma.c:569) [ 24.461074][ C2] ? vms_gather_munmap_vmas (mm/vma.c:1448) [ 24.461075][ C2] ? __mmap_setup (mm/vma.c:2439) [ 24.461077][ C2] ? __mmap_region (mm/vma.c:2753) [ 24.461078][ C2] ? mmap_region (mm/vma.c:2857) [ 24.461079][ C2] ? do_mmap (mm/mmap.c:560) [ 24.461081][ C2] ? vm_mmap_pgoff (mm/util.c:581) [ 24.461083][ C2] ? ksys_mmap_pgoff (mm/mmap.c:606) [ 24.461085][ C2] ? do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 24.461086][ C2] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 24.461090][ C2] kasan_record_aux_stack (mm/kasan/generic.c:556) [ 24.461092][ C2] kvfree_call_rcu (mm/slab_common.c:1970) [ 24.461094][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 24.461096][ C2] mas_wr_node_store (lib/maple_tree.c:1153 (discriminator 1) lib/maple_tree.c:1595 (discriminator 1) lib/maple_tree.c:3201 (discriminator 1)) [ 24.461099][ C2] ? mas_update_gap.part.0 (lib/maple_tree.c:1348 (discriminator 2)) [ 24.461103][ C2] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 24.461104][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 24.461107][ C2] mas_store_prealloc (lib/maple_tree.c:4936) [ 24.461108][ C2] ? lock_acquire (./include/trace/events/lock.h:24 (discriminator 22) kernel/locking/lockdep.c:5831 (discriminator 22)) [ 24.461110][ C2] ? mas_store (lib/maple_tree.c:231) [ 24.461112][ C2] ? down_write (./include/linux/instrumented.h:55 ./include/linux/atomic/atomic-instrumented.h:4457 kernel/locking/rwsem.c:268 kernel/locking/rwsem.c:1346 kernel/locking/rwsem.c:1356 kernel/locking/rwsem.c:1626) [ 24.461115][ C2] ? vma_prepare (mm/vma.c:322) [ 24.461116][ C2] vma_complete (mm/vma.h:616 mm/vma.h:623 mm/vma.c:359) [ 24.461118][ C2] ? init_multi_vma_prep (mm/vma.c:152) [ 24.461120][ C2] __split_vma (mm/vma.c:569) [ 24.461121][ C2] ? commit_merge (./include/linux/maple_tree.h:791 (discriminator 3)) [ 24.461123][ C2] ? mas_next_slot (./include/linux/lockdep.h:249 lib/maple_tree.c:709 lib/maple_tree.c:715 lib/maple_tree.c:4173) [ 24.461126][ C2] vms_gather_munmap_vmas (mm/vma.c:1448) [ 24.461128][ C2] ? __split_vma (mm/vma.c:565) [ 24.461130][ C2] ? mas_walk (lib/maple_tree.c:2952 lib/maple_tree.c:4366) [ 24.461132][ C2] __mmap_setup (mm/vma.c:2439) [ 24.461134][ C2] ? unmap_region (mm/vma.c:492) [ 24.461136][ C2] ? __mmap_new_vma (./include/linux/fs.h:523 mm/vma.c:1840 mm/vma.c:2585) [ 24.461137][ C2] ? perf_event_mmap (./include/linux/instrumented.h:82 ./include/linux/atomic/atomic-instrumented.h:32 kernel/events/core.c:9932) [ 24.461140][ C2] ? vma_wants_writenotify (mm/vma.c:2112) [ 24.461142][ C2] ? vma_needs_dirty_tracking (mm/vma.c:2064 (discriminator 2)) [ 24.461144][ C2] ? uprobe_apply (./include/linux/rcupdate_trace.h:106 (discriminator 1)) [ 24.461146][ C2] ? vma_set_page_prot (mm/mmap.c:87) [ 24.461148][ C2] __mmap_region (mm/vma.c:2753) [ 24.461150][ C2] ? vma_merge_new_range (mm/vma.c:1083) [ 24.461151][ C2] ? filemap_get_pages (mm/filemap.c:2725) [ 24.461155][ C2] ? mark_usage (kernel/locking/lockdep.c:4674) [ 24.461157][ C2] ? copy_page_to_iter (lib/iov_iter.c:374 lib/iov_iter.c:361) [ 24.461160][ C2] ? folio_mark_accessed (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/linux/page-flags.h:554 mm/swap.c:478 mm/swap.c:461) [ 24.461166][ C2] ? mas_prev (lib/maple_tree.c:5211 lib/maple_tree.c:5204) [ 24.461175][ C2] ? vm_unmapped_area (./include/trace/events/mmap.h:10 (discriminator 22) mm/mmap.c:674 (discriminator 22)) [ 24.461177][ C2] ? arch_get_unmapped_area_topdown (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/linux/thread_info.h:133 arch/x86/kernel/sys_x86_64.c:177) [ 24.461181][ C2] mmap_region (mm/vma.c:2857) [ 24.461182][ C2] ? mm_take_all_locks (mm/vma.c:2266 (discriminator 1)) [ 24.461184][ C2] ? __might_fault (mm/memory.c:7340 (discriminator 5)) [ 24.461186][ C2] ? __get_unmapped_area (./include/linux/security.h:1187 mm/mmap.c:863) [ 24.461188][ C2] ? ovl_file_end_write (./include/linux/fs.h:1353) [ 24.461192][ C2] do_mmap (mm/mmap.c:560) [ 24.461194][ C2] ? __ia32_sys_brk (mm/mmap.c:116) [ 24.461196][ C2] ? down_write_killable (./include/linux/instrumented.h:55 ./include/linux/atomic/atomic-instrumented.h:4457 kernel/locking/rwsem.c:268 kernel/locking/rwsem.c:1346 kernel/locking/rwsem.c:1361 kernel/locking/rwsem.c:1639) [ 24.461198][ C2] ? down_write (kernel/locking/rwsem.c:1627) [ 24.461200][ C2] vm_mmap_pgoff (mm/util.c:581) [ 24.461202][ C2] ? randomize_page (mm/util.c:387) [ 24.461204][ C2] ? __fget_files (./include/linux/rcupdate.h:871 fs/file.c:1101) [ 24.461207][ C2] ksys_mmap_pgoff (mm/mmap.c:606) [ 24.461209][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 24.461211][ C2] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 24.461213][ C2] ? do_syscall_64 (./include/linux/entry-common.h:177 arch/x86/entry/syscall_64.c:89) [ 24.461214][ C2] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 24.461215][ C2] ? trace_hardirqs_off (kernel/trace/trace_preemptirq.c:104 (discriminator 1)) [ 24.461218][ C2] ? exc_page_fault (arch/x86/mm/fault.c:1480 (discriminator 3) arch/x86/mm/fault.c:1527 (discriminator 3)) [ 24.461220][ C2] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 24.461221][ C2] RIP: 0033:0x7f33795ef85c [ 24.461224][ C2] Code: 1e fa 41 f7 c1 ff 0f 00 00 75 33 55 48 89 e5 41 54 41 89 cc 53 48 89 fb 48 85 ff 74 51 45 89 e2 48 89 df b8 09 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 24 5b 41 5c 5d c3 0f 1f 80 00 00 00 00 c7 05 All code ======== 0: 1e (bad) 1: fa cli 2: 41 f7 c1 ff 0f 00 00 test $0xfff,%r9d 9: 75 33 jne 0x3e b: 55 push %rbp c: 48 89 e5 mov %rsp,%rbp f: 41 54 push %r12 11: 41 89 cc mov %ecx,%r12d 14: 53 push %rbx 15: 48 89 fb mov %rdi,%rbx 18: 48 85 ff test %rdi,%rdi 1b: 74 51 je 0x6e 1d: 45 89 e2 mov %r12d,%r10d 20: 48 89 df mov %rbx,%rdi 23: b8 09 00 00 00 mov $0x9,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 24 ja 0x56 32: 5b pop %rbx 33: 41 5c pop %r12 35: 5d pop %rbp 36: c3 ret 37: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 3e: c7 .byte 0xc7 3f: 05 .byte 0x5 Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 24 ja 0x2c 8: 5b pop %rbx 9: 41 5c pop %r12 b: 5d pop %rbp c: c3 ret d: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 14: c7 .byte 0xc7 15: 05 .byte 0x5 [ 24.461225][ C2] RSP: 002b:00007ffe98652e20 EFLAGS: 00000206 ORIG_RAX: 0000000000000009 [ 24.461226][ C2] RAX: ffffffffffffffda RBX: 00007f33794fe000 RCX: 00007f33795ef85c [ 24.461227][ C2] RDX: 0000000000000003 RSI: 0000000000001000 RDI: 00007f33794fe000 [ 24.461228][ C2] RBP: 00007ffe98652e30 R08: 0000000000000005 R09: 0000000000004000 [ 24.461229][ C2] R10: 0000000000000812 R11: 0000000000000206 R12: 0000000000000812 Finger prints: mark_lock_irq:mark_lock:mark_usage:__lock_acquire:_raw_spin_lock