====================================== | [ 72.343100][ C2] #0: ff1100000dd46608 (vm_lock){++++}-{0:0}, at: lock_vma_under_rcu (mm/mmap_lock.c:310) | [ 72.343410][ C2] #1: ffffffff89177c00 (rcu_callback){....}-{0:0}, at: rcu_do_batch (./include/linux/rcupdate.h:300 (discriminator 2) kernel/rcu/tree.c:2611 (discriminator 2)) | [ 72.343641][ C2] | [ 72.343641][ C2] stack backtrace: [ 72.343804][ C2] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 72.343806][ C2] Call Trace: [ 72.343808][ C2] [ 72.343810][ C2] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 72.343816][ C2] print_usage_bug.part.0.cold (kernel/locking/lockdep.c:4042) [ 72.343819][ C2] ? filter_irq_stacks (kernel/stacktrace.c:402) [ 72.343824][ C2] mark_lock_irq (kernel/locking/lockdep.c:4013 kernel/locking/lockdep.c:4056 kernel/locking/lockdep.c:4267) [ 72.343827][ C2] ? sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1061 (discriminator 37) arch/x86/kernel/apic/apic.c:1061 (discriminator 37)) [ 72.343830][ C2] ? asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697) [ 72.343833][ C2] ? save_trace (kernel/locking/lockdep.c:589) [ 72.343837][ C2] mark_lock (kernel/locking/lockdep.c:4753) [ 72.343840][ C2] mark_usage (kernel/locking/lockdep.c:4642) [ 72.343842][ C2] __lock_acquire (kernel/locking/lockdep.c:5191) [ 72.343844][ C2] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 72.343846][ C2] ? rcu_do_batch (./include/linux/rcupdate.h:310 (discriminator 2) kernel/rcu/tree.c:2619 (discriminator 2)) [ 72.343851][ C2] lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 72.343853][ C2] ? tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 72.343857][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 72.343860][ C2] ? lock_acquire (./include/trace/events/lock.h:24 (discriminator 22) kernel/locking/lockdep.c:5831 (discriminator 22)) [ 72.343863][ C2] _raw_spin_lock (./include/linux/spinlock_api_smp.h:158 (discriminator 1) kernel/locking/spinlock.c:158 (discriminator 1)) [ 72.343866][ C2] ? tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 72.343868][ C2] tcf_mirred_release (./include/linux/spinlock.h:342 net/sched/act_mirred.c:78) act_mirred [ 72.343871][ C2] tcf_action_rcu_free (net/sched/act_api.c:367 net/sched/act_api.c:378) [ 72.343874][ C2] ? rcu_do_batch (./include/linux/rcupdate.h:310 (discriminator 2) kernel/rcu/tree.c:2619 (discriminator 2)) [ 72.343877][ C2] rcu_do_batch (kernel/rcu/tree.c:2617) [ 72.343881][ C2] ? trace_rcu_batch_end (./include/trace/events/rcu.h:714 (discriminator 19)) [ 72.343884][ C2] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 2) kernel/locking/lockdep.c:4411 (discriminator 2)) [ 72.343887][ C2] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 72.343889][ C2] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:178 (discriminator 6) kernel/locking/spinlock.c:198 (discriminator 6)) [ 72.343891][ C2] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:179 (discriminator 1) kernel/locking/spinlock.c:198 (discriminator 1)) [ 72.343895][ C2] rcu_core (kernel/rcu/tree.c:2869) [ 72.343898][ C2] handle_softirqs (kernel/softirq.c:622) [ 72.343900][ C2] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 72.343904][ C2] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 72.343906][ C2] ? _local_bh_enable (kernel/softirq.c:405 (discriminator 1)) [ 72.343910][ C2] __irq_exit_rcu (kernel/softirq.c:656 kernel/softirq.c:496 kernel/softirq.c:735) [ 72.343912][ C2] irq_exit_rcu (kernel/softirq.c:752) [ 72.343914][ C2] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1061 (discriminator 37) arch/x86/kernel/apic/apic.c:1061 (discriminator 37)) [ 72.343917][ C2] [ 72.343918][ C2] [ 72.343920][ C2] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697) [ 72.343923][ C2] RIP: 0010:copy_mc_enhanced_fast_string (arch/x86/lib/copy_mc_64.S:128) [ 72.343927][ C2] Code: 07 48 ff c6 48 ff c7 ff c9 75 f2 31 c0 c3 c1 e1 03 01 d1 89 c8 eb f6 c1 e1 03 01 d1 89 ca e9 b1 fe ff ff 90 48 89 f8 48 89 d1 a4 31 c0 c3 48 89 c8 c3 90 f3 0f 1e fa 66 90 b9 00 02 00 00 f3 All code ======== 0: 07 (bad) 1: 48 ff c6 inc %rsi 4: 48 ff c7 inc %rdi 7: ff c9 dec %ecx 9: 75 f2 jne 0xfffffffffffffffd b: 31 c0 xor %eax,%eax d: c3 ret e: c1 e1 03 shl $0x3,%ecx 11: 01 d1 add %edx,%ecx 13: 89 c8 mov %ecx,%eax 15: eb f6 jmp 0xd 17: c1 e1 03 shl $0x3,%ecx 1a: 01 d1 add %edx,%ecx 1c: 89 ca mov %ecx,%edx 1e: e9 b1 fe ff ff jmp 0xfffffffffffffed4 23: 90 nop 24: 48 89 f8 mov %rdi,%rax 27: 48 89 d1 mov %rdx,%rcx 2a:* f3 a4 rep movsb (%rsi),(%rdi) <-- trapping instruction 2c: 31 c0 xor %eax,%eax 2e: c3 ret 2f: 48 89 c8 mov %rcx,%rax 32: c3 ret 33: 90 nop 34: f3 0f 1e fa endbr64 38: 66 90 xchg %ax,%ax 3a: b9 00 02 00 00 mov $0x200,%ecx 3f: f3 repz Code starting with the faulting instruction =========================================== 0: f3 a4 rep movsb (%rsi),(%rdi) 2: 31 c0 xor %eax,%eax 4: c3 ret 5: 48 89 c8 mov %rcx,%rax 8: c3 ret 9: 90 nop a: f3 0f 1e fa endbr64 e: 66 90 xchg %ax,%ax 10: b9 00 02 00 00 mov $0x200,%ecx 15: f3 repz [ 72.343930][ C2] RSP: 0000:ffa0000001837bc0 EFLAGS: 00000296 [ 72.343933][ C2] RAX: ff11000012fb8000 RBX: ffd40000004bee00 RCX: 0000000000001000 [ 72.343935][ C2] RDX: 0000000000001000 RSI: ff1100000d68d000 RDI: ff11000012fb8000 [ 72.343937][ C2] RBP: ffd400000035a340 R08: ffffffff882521ad R09: 0000000000000000 [ 72.343938][ C2] R10: ffe21c0001ad1c00 R11: 0000000000000000 R12: ff1100000dd46580 [ 72.343940][ C2] R13: ffd400000035a340 R14: ffa0000001837d88 R15: ffa0000001837dc8 [ 72.343942][ C2] ? copy_mc_to_kernel (./include/linux/instrumented.h:180 arch/x86/lib/copy_mc.c:74) [ 72.343946][ C2] __wp_page_copy_user (./include/linux/highmem.h:442 mm/memory.c:3566) [ 72.343949][ C2] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 72.343952][ C2] wp_page_copy (mm/memory.c:3882) [ 72.343955][ C2] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 72.343958][ C2] ? __vmf_anon_prepare (mm/memory.c:3826) [ 72.343961][ C2] ? do_raw_spin_unlock (./include/linux/instrumented.h:82 ./include/linux/atomic/atomic-instrumented.h:32 ./include/asm-generic/qspinlock.h:57 kernel/locking/spinlock_debug.c:101 kernel/locking/spinlock_debug.c:141) [ 72.343964][ C2] ? rcu_read_unlock (./include/linux/rcupdate.h:867 (discriminator 6)) [ 72.343966][ C2] ? do_wp_page (./include/linux/pgtable.h:117 mm/memory.c:4331) [ 72.343969][ C2] __handle_mm_fault (mm/memory.c:6443 mm/memory.c:6565) [ 72.343972][ C2] ? __pmd_alloc (./include/linux/mm.h:1682) [ 72.343974][ C2] ? lock_vma_under_rcu (./include/linux/rcupdate.h:310 (discriminator 2) ./include/linux/rcupdate.h:869 (discriminator 2) mm/mmap_lock.c:329 (discriminator 2)) [ 72.343977][ C2] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5574) [ 72.343983][ C2] handle_mm_fault (mm/memory.c:6734) [ 72.343985][ C2] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 72.343989][ C2] do_user_addr_fault (arch/x86/mm/fault.c:1334) [ 72.343994][ C2] ? irqentry_enter (./include/linux/irq-entry-common.h:108 ./include/linux/irq-entry-common.h:293 kernel/entry/common.c:113) [ 72.343996][ C2] exc_page_fault (arch/x86/mm/fault.c:1474 arch/x86/mm/fault.c:1527) [ 72.343999][ C2] asm_exc_page_fault (./arch/x86/include/asm/idtentry.h:618) [ 72.344001][ C2] RIP: 0033:0x7fd9563eb340 [ 72.344004][ C2] Code: be b9 13 00 e8 51 f8 ff ff 90 48 39 4f 08 0f 84 d6 00 00 00 55 48 89 d0 48 89 fa 48 89 e5 48 83 ec 20 42 f6 44 01 08 01 74 50 <48> 83 61 08 fe 48 3d ff 03 00 00 76 73 48 8b 7a 18 4c 8d 42 08 4c All code ======== 0: be b9 13 00 e8 mov $0xe80013b9,%esi 5: 51 push %rcx 6: f8 clc 7: ff (bad) 8: ff 90 48 39 4f 08 call *0x84f3948(%rax) e: 0f 84 d6 00 00 00 je 0xea 14: 55 push %rbp 15: 48 89 d0 mov %rdx,%rax 18: 48 89 fa mov %rdi,%rdx 1b: 48 89 e5 mov %rsp,%rbp 1e: 48 83 ec 20 sub $0x20,%rsp 22: 42 f6 44 01 08 01 testb $0x1,0x8(%rcx,%r8,1) 28: 74 50 je 0x7a 2a:* 48 83 61 08 fe andq $0xfffffffffffffffe,0x8(%rcx) <-- trapping instruction 2f: 48 3d ff 03 00 00 cmp $0x3ff,%rax 35: 76 73 jbe 0xaa 37: 48 8b 7a 18 mov 0x18(%rdx),%rdi 3b: 4c 8d 42 08 lea 0x8(%rdx),%r8 3f: 4c rex.WR Code starting with the faulting instruction =========================================== 0: 48 83 61 08 fe andq $0xfffffffffffffffe,0x8(%rcx) 5: 48 3d ff 03 00 00 cmp $0x3ff,%rax b: 76 73 jbe 0x80 d: 48 8b 7a 18 mov 0x18(%rdx),%rdi 11: 4c 8d 42 08 lea 0x8(%rdx),%r8 15: 4c rex.WR [ 72.344006][ C2] RSP: 002b:00007ffc589af650 EFLAGS: 00010202 [ 72.344008][ C2] RAX: 0000000000000020 RBX: 000055e035408040 RCX: 000055e035408060 [ 72.344010][ C2] RDX: 00007fd95655cac0 RSI: 000055e035408040 RDI: 00007fd95655cac0 [ 72.344011][ C2] RBP: 00007ffc589af670 R08: 0000000000000020 R09: 0000000000000020 [ 72.344012][ C2] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000020 Finger prints: mark_lock_irq:mark_lock:mark_usage:__lock_acquire:_raw_spin_lock