Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ========================================================
- WARNING: possible irq lock inversion dependency detected
- 4.15.0+ #2 Tainted: G O
- --------------------------------------------------------
- tracer_test/274 just changed the state of lock:
- (trc_lock){+...}, at: [<4df3db5f>] trc_ioctl+0xa2/0x1c0 [tracer]
- but this lock was taken by another, HARDIRQ-safe lock in the past:
- (&(&vblk->vqs[i].lock)->rlock){-.-.}
- and interrupts could create inverse lock ordering between them.
- other info that might help us debug this:
- Chain exists of:
- &(&vblk->vqs[i].lock)->rlock --> &(kretprobe_table_locks[i].lock) --> trc_lock
- Possible interrupt unsafe locking scenario:
- CPU0 CPU1
- ---- ----
- lock(trc_lock);
- local_irq_disable();
- lock(&(&vblk->vqs[i].lock)->rlock);
- lock(&(kretprobe_table_locks[i].lock));
- <Interrupt>
- lock(&(&vblk->vqs[i].lock)->rlock);
- *** DEADLOCK ***
- no locks held by tracer_test/274.
- the shortest dependencies between 2nd lock and 1st lock:
- -> (&(&vblk->vqs[i].lock)->rlock){-.-.} ops: 460 {
- IN-HARDIRQ-W at:
- lock_acquire+0x69/0x80
- _raw_spin_lock_irqsave+0x46/0x60
- virtblk_done+0x34/0xc0
- vring_interrupt+0x20/0x50
- vp_interrupt+0x5a/0xb0
- __handle_irq_event_percpu+0x57/0xe0
- handle_irq_event_percpu+0x1d/0x50
- handle_irq_event+0x32/0x60
- handle_fasteoi_irq+0x7a/0x160
- handle_irq+0x7a/0xb0
- do_IRQ+0x55/0x120
- common_interrupt+0x39/0x40
- blk_mq_dispatch_rq_list+0x76/0x470
- blk_mq_do_dispatch_sched+0x50/0xb0
- blk_mq_sched_dispatch_requests+0xfd/0x180
- __blk_mq_run_hw_queue+0xa3/0x1d0
- blk_mq_run_work_fn+0x25/0x30
- process_one_work+0x16f/0x410
- worker_thread+0x37/0x420
- kthread+0xcf/0x100
- ret_from_fork+0x2e/0x38
- IN-SOFTIRQ-W at:
- lock_acquire+0x69/0x80
- _raw_spin_lock_irqsave+0x46/0x60
- virtblk_done+0x34/0xc0
- vring_interrupt+0x20/0x50
- vp_interrupt+0x5a/0xb0
- __handle_irq_event_percpu+0x57/0xe0
- handle_irq_event_percpu+0x1d/0x50
- handle_irq_event+0x32/0x60
- handle_fasteoi_irq+0x7a/0x160
- handle_irq+0x7a/0xb0
- do_IRQ+0x55/0x120
- common_interrupt+0x39/0x40
- __do_softirq+0x80/0x1f2
- do_softirq_own_stack+0x57/0x70
- irq_exit+0x7d/0x90
- smp_apic_timer_interrupt+0x4f/0x90
- apic_timer_interrupt+0x3a/0x40
- vp_notify+0xf/0x20
- virtqueue_notify+0xf/0x30
- virtio_queue_rq+0x27f/0x2f0
- blk_mq_dispatch_rq_list+0x66/0x470
- blk_mq_do_dispatch_sched+0x50/0xb0
- blk_mq_sched_dispatch_requests+0xfd/0x180
- __blk_mq_run_hw_queue+0xa3/0x1d0
- __blk_mq_delay_run_hw_queue+0xb7/0xc0
- blk_mq_run_hw_queue+0x24/0x80
- blk_mq_sched_insert_requests+0x54/0x80
- blk_mq_flush_plug_list+0xfd/0x110
- blk_flush_plug_list+0x9d/0x1e0
- blk_finish_plug+0x29/0x40
- __do_page_cache_readahead+0x2de/0x370
- filemap_fault+0x526/0x5a0
- ext4_filemap_fault+0x27/0x40
- __do_fault+0x18/0x70
- handle_mm_fault+0x357/0x8f0
- __do_page_fault+0x1dd/0x520
- do_page_fault+0xb/0x10
- common_exception+0x7c/0x82
- INITIAL USE at:
- lock_acquire+0x69/0x80
- _raw_spin_lock_irqsave+0x46/0x60
- virtio_queue_rq+0xc7/0x2f0
- blk_mq_dispatch_rq_list+0x66/0x470
- blk_mq_do_dispatch_sched+0x50/0xb0
- blk_mq_sched_dispatch_requests+0xfd/0x180
- __blk_mq_run_hw_queue+0xa3/0x1d0
- blk_mq_run_work_fn+0x25/0x30
- process_one_work+0x16f/0x410
- worker_thread+0x37/0x420
- kthread+0xcf/0x100
- ret_from_fork+0x2e/0x38
- }
- ... key at: [<43d50c97>] __key.38703+0x0/0x8
- ... acquired at:
- _raw_spin_lock_irqsave+0x46/0x60
- pre_handler_kretprobe+0xb7/0x140
- aggr_pre_handler+0x3b/0x70
- kprobe_int3_handler+0xc4/0x150
- do_int3+0x57/0x120
- int3+0x39/0x40
- __kmalloc+0x1/0x210
- virtqueue_add_sgs+0xf4/0x420
- virtio_queue_rq+0x177/0x2f0
- blk_mq_dispatch_rq_list+0x66/0x470
- blk_mq_do_dispatch_sched+0x50/0xb0
- blk_mq_sched_dispatch_requests+0xfd/0x180
- __blk_mq_run_hw_queue+0xa3/0x1d0
- __blk_mq_delay_run_hw_queue+0xb7/0xc0
- blk_mq_run_hw_queue+0x24/0x80
- blk_mq_sched_insert_requests+0x54/0x80
- blk_mq_flush_plug_list+0xfd/0x110
- blk_flush_plug_list+0x9d/0x1e0
- blk_finish_plug+0x29/0x40
- __do_page_cache_readahead+0x2de/0x370
- filemap_fault+0x526/0x5a0
- ext4_filemap_fault+0x27/0x40
- __do_fault+0x18/0x70
- handle_mm_fault+0x357/0x8f0
- __do_page_fault+0x1dd/0x520
- do_page_fault+0xb/0x10
- common_exception+0x7c/0x82
- -> (&(kretprobe_table_locks[i].lock)){....} ops: 783 {
- INITIAL USE at:
- lock_acquire+0x69/0x80
- _raw_spin_lock_irqsave+0x46/0x60
- kprobe_flush_task+0x3b/0xc0
- finish_task_switch+0xf5/0x210
- __schedule+0x209/0x5e0
- schedule+0x30/0x80
- schedule_timeout+0x12e/0x220
- rcu_gp_kthread+0x4ba/0x7c0
- kthread+0xcf/0x100
- ret_from_fork+0x2e/0x38
- }
- ... key at: [<bee617ff>] __key.33539+0x0/0x8
- ... acquired at:
- _raw_spin_lock+0x39/0x50
- kmalloc_ret+0x14/0xc0 [tracer]
- trampoline_handler+0xfa/0x1a0
- kretprobe_trampoline+0x18/0x30
- -> (trc_lock){+...} ops: 23 {
- HARDIRQ-ON-W at:
- lock_acquire+0x69/0x80
- _raw_spin_lock+0x39/0x50
- trc_ioctl+0xa2/0x1c0 [tracer]
- do_vfs_ioctl+0x84/0x7b0
- SyS_ioctl+0x34/0x60
- do_fast_syscall_32+0x97/0x2b0
- entry_SYSENTER_32+0x4c/0x7b
- INITIAL USE at:
- lock_acquire+0x69/0x80
- _raw_spin_lock+0x39/0x50
- kmalloc_ret+0x14/0xc0 [tracer]
- trampoline_handler+0xfa/0x1a0
- kretprobe_trampoline+0x18/0x30
- }
- ... key at: [<6e906a15>] trc_lock+0x10/0xffffef40 [tracer]
- ... acquired at:
- mark_lock+0x307/0x610
- __lock_acquire+0x50e/0x1710
- lock_acquire+0x69/0x80
- _raw_spin_lock+0x39/0x50
- trc_ioctl+0xa2/0x1c0 [tracer]
- do_vfs_ioctl+0x84/0x7b0
- SyS_ioctl+0x34/0x60
- do_fast_syscall_32+0x97/0x2b0
- entry_SYSENTER_32+0x4c/0x7b
- stack backtrace:
- CPU: 0 PID: 274 Comm: tracer_test Tainted: G O 4.15.0+ #2
- Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
- Call Trace:
- dump_stack+0x5f/0x89
- print_irq_inversion_bug.part.21+0x16c/0x175
- check_usage_backwards+0x108/0x110
- ? print_shortest_lock_dependencies+0x1a0/0x1a0
- mark_lock+0x307/0x610
- ? __switch_to_asm+0x1a/0x40
- ? print_shortest_lock_dependencies+0x1a0/0x1a0
- __lock_acquire+0x50e/0x1710
- ? trace_hardirqs_on_caller+0x11c/0x1a0
- ? finish_task_switch+0xb0/0x210
- ? trace_hardirqs_on+0xb/0x10
- ? _raw_spin_unlock_irq+0x22/0x30
- ? finish_task_switch+0x6e/0x210
- ? __schedule+0x209/0x5e0
- lock_acquire+0x69/0x80
- ? trc_ioctl+0xa2/0x1c0 [tracer]
- _raw_spin_lock+0x39/0x50
- ? trc_ioctl+0xa2/0x1c0 [tracer]
- ? kmalloc_ret+0xc0/0xc0 [tracer]
- trc_ioctl+0xa2/0x1c0 [tracer]
- ? kmalloc_ret+0xc0/0xc0 [tracer]
- do_vfs_ioctl+0x84/0x7b0
- ? hrtimer_nanosleep+0xbf/0x1a0
- ? __might_fault+0x41/0xa0
- SyS_ioctl+0x34/0x60
- do_fast_syscall_32+0x97/0x2b0
- entry_SYSENTER_32+0x4c/0x7b
- EIP: 0xb7fc9b35
- EFLAGS: 00000296 CPU: 0
- EAX: ffffffda EBX: 00000003 ECX: 4004012a EDX: 00000117
- ESI: 080ee00c EDI: 00000006 EBP: bf88f7c8 ESP: bf88f788
- DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement