Bug 211285 - new kernel 5.10.8 deadlock?
Summary: new kernel 5.10.8 deadlock?
Status: NEW
Alias: None
Product: SCSI Drivers
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 high
Assignee: scsi_drivers-other
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-19 21:13 UTC by sixtriple626@gmail.com
Modified: 2021-01-21 04:11 UTC (History)
1 user (show)

See Also:
Kernel Version: 5.10.8
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description sixtriple626@gmail.com 2021-01-19 21:13:39 UTC
Hi

After dowloading,compiling and installing kernel 5.10.8 i receive this on boot.
Is this a deadlock?

I have RHEL 8.3 in hyper-v guest

ata2.00: ATAPI: Virtual CD, , max MWDMA2
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'vmbus': driver_probe_device: matched device 00000001-0001-8899-0000-000000000000 with driver hv_storvsc
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'vmbus': really_probe: probing driver hv_storvsc with device 00000001-0001-8899-0000-000000000000
Jan 19 16:46:25 lnx.et.priv kernel: scsi host2: storvsc_host_t
Jan 19 16:46:25 lnx.et.priv kernel: 
Jan 19 16:46:25 lnx.et.priv kernel:

--->>>

 ========================================================
Jan 19 16:46:25 lnx.et.priv kernel: WARNING: possible irq lock inversion dependency detected
Jan 19 16:46:25 lnx.et.priv kernel: 5.10.8 #1 Not tainted
Jan 19 16:46:25 lnx.et.priv kernel: --------------------------------------------------------
Jan 19 16:46:25 lnx.et.priv kernel: rngd/204 just changed the state of lock:
Jan 19 16:46:25 lnx.et.priv kernel: device: 'host2': device_add
Jan 19 16:46:25 lnx.et.priv kernel: device: 'scsi_tmf_3': device_add
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'workqueue': add device scsi_tmf_3
Jan 19 16:46:25 lnx.et.priv kernel: ffff92e10aa2c618
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'scsi': add device host2
Jan 19 16:46:25 lnx.et.priv kernel:  (&host->lock
Jan 19 16:46:25 lnx.et.priv kernel: device: 'host2': device_add
Jan 19 16:46:25 lnx.et.priv kernel: ){-...}-{2:2}, at: ata_bmdma_interrupt+0x1c/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel: but this lock took another, HARDIRQ-READ-unsafe lock in the past:
Jan 19 16:46:25 lnx.et.priv kernel: scsi 2:0:0:0: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
Jan 19 16:46:25 lnx.et.priv kernel:  (&trig->leddev_list_lock){.+.?}-{2:2}
Jan 19 16:46:25 lnx.et.priv kernel: 
                                    
                                    and interrupts could create inverse lock ordering between them.
Jan 19 16:46:25 lnx.et.priv kernel: device: 'target2:0:0': device_add
Jan 19 16:46:25 lnx.et.priv kernel: 
                                    other info that might help us debug this:
Jan 19 16:46:25 lnx.et.priv kernel:  Possible interrupt unsafe locking scenario:
Jan 19 16:46:25 lnx.et.priv kernel:        CPU0                    CPU1
Jan 19 16:46:25 lnx.et.priv kernel:        ----                    ----
Jan 19 16:46:25 lnx.et.priv kernel:   lock(&trig->leddev_list_lock);
Jan 19 16:46:25 lnx.et.priv kernel:                                local_irq_disable();
Jan 19 16:46:25 lnx.et.priv kernel:                                lock(&host->lock
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'scsi': add device target2:0:0
Jan 19 16:46:25 lnx.et.priv kernel: );
Jan 19 16:46:25 lnx.et.priv kernel:                                lock(&trig->leddev_list_lock);
Jan 19 16:46:25 lnx.et.priv kernel:   <Interrupt>
Jan 19 16:46:25 lnx.et.priv kernel:     lock(&host->lock);
Jan 19 16:46:25 lnx.et.priv kernel: 
                                     *** DEADLOCK ***
Jan 19 16:46:25 lnx.et.priv kernel: no locks held by rngd/204.
Jan 19 16:46:25 lnx.et.priv kernel: 
                                    the shortest dependencies between 2nd lock and 1st lock:
Jan 19 16:46:25 lnx.et.priv kernel:  -> (&trig->leddev_list_lock){.+.?}-{2:2} {
Jan 19 16:46:25 lnx.et.priv kernel:     HARDIRQ-ON-R at:
Jan 19 16:46:25 lnx.et.priv kernel:                       lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:                       _raw_read_lock+0x33/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                       led_trigger_event+0x21/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                       kbd_propagate_led_state+0x3b/0x50
Jan 19 16:46:25 lnx.et.priv kernel:                       kbd_bh+0x64/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                       tasklet_action_common.isra.20+0xc4/0xe0
Jan 19 16:46:25 lnx.et.priv kernel:                       __do_softirq+0xca/0x418
Jan 19 16:46:25 lnx.et.priv kernel:                       asm_call_irq_on_stack+0xf/0x20
Jan 19 16:46:25 lnx.et.priv kernel:                       do_softirq_own_stack+0x56/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                       irq_exit_rcu+0x74/0x80
Jan 19 16:46:25 lnx.et.priv kernel:                       sysvec_hyperv_stimer0+0x49/0xa0
Jan 19 16:46:25 lnx.et.priv kernel:                       asm_sysvec_hyperv_stimer0+0x12/0x20
Jan 19 16:46:25 lnx.et.priv kernel:                       delay_tsc+0x29/0x80
Jan 19 16:46:25 lnx.et.priv kernel:                       init_acpi_pm_clocksource+0x2a/0xd2
Jan 19 16:46:25 lnx.et.priv kernel:                       do_one_initcall+0x53/0x2b0
Jan 19 16:46:25 lnx.et.priv kernel:                       kernel_init_freeable+0x261/0x2c5
Jan 19 16:46:25 lnx.et.priv kernel:                       kernel_init+0x5/0xfe
Jan 19 16:46:25 lnx.et.priv kernel:                       ret_from_fork+0x1f/0x30
Jan 19 16:46:25 lnx.et.priv kernel:     IN-SOFTIRQ-R at:
Jan 19 16:46:25 lnx.et.priv kernel:                       lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:                       _raw_read_lock+0x33/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                       led_trigger_event+0x21/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                       kbd_propagate_led_state+0x3b/0x50
Jan 19 16:46:25 lnx.et.priv kernel:                       kbd_bh+0x64/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                       tasklet_action_common.isra.20+0xc4/0xe0
Jan 19 16:46:25 lnx.et.priv kernel:                       __do_softirq+0xca/0x418
Jan 19 16:46:25 lnx.et.priv kernel:                       asm_call_irq_on_stack+0xf/0x20
Jan 19 16:46:25 lnx.et.priv kernel:                       do_softirq_own_stack+0x56/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                       irq_exit_rcu+0x74/0x80
Jan 19 16:46:25 lnx.et.priv kernel:                       sysvec_hyperv_stimer0+0x49/0xa0
Jan 19 16:46:25 lnx.et.priv kernel:                       asm_sysvec_hyperv_stimer0+0x12/0x20
Jan 19 16:46:25 lnx.et.priv kernel:                       delay_tsc+0x29/0x80
Jan 19 16:46:25 lnx.et.priv kernel:                       init_acpi_pm_clocksource+0x2a/0xd2
Jan 19 16:46:25 lnx.et.priv kernel:                       do_one_initcall+0x53/0x2b0
Jan 19 16:46:25 lnx.et.priv kernel:                       kernel_init_freeable+0x261/0x2c5
Jan 19 16:46:25 lnx.et.priv kernel:                       kernel_init+0x5/0xfe
Jan 19 16:46:25 lnx.et.priv kernel:                       ret_from_fork+0x1f/0x30

Jan 19 16:46:25 lnx.et.priv kernel:     SOFTIRQ-ON-R at:
Jan 19 16:46:25 lnx.et.priv kernel:                       lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:                       _raw_read_lock+0x58/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                       led_trigger_event+0x21/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                       ledtrig_cpu+0x7a/0xc0
Jan 19 16:46:25 lnx.et.priv kernel:                       ledtrig_online_cpu+0xa/0x10
Jan 19 16:46:25 lnx.et.priv kernel:                       cpuhp_invoke_callback+0x9b/0x7e0
Jan 19 16:46:25 lnx.et.priv kernel:                       cpuhp_thread_fun+0x192/0x220
Jan 19 16:46:25 lnx.et.priv kernel:                       smpboot_thread_fn+0xc8/0x180
Jan 19 16:46:25 lnx.et.priv kernel:                       kthread+0x120/0x140
Jan 19 16:46:25 lnx.et.priv kernel:                       ret_from_fork+0x1f/0x30
Jan 19 16:46:25 lnx.et.priv kernel:     INITIAL READ USE at:
Jan 19 16:46:25 lnx.et.priv kernel:                           lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:                           _raw_read_lock+0x33/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                           led_trigger_event+0x21/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                           kbd_propagate_led_state+0x3b/0x50
Jan 19 16:46:25 lnx.et.priv kernel:                           kbd_bh+0x64/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                           tasklet_action_common.isra.20+0xc4/0xe0
Jan 19 16:46:25 lnx.et.priv kernel:                           __do_softirq+0xca/0x418
Jan 19 16:46:25 lnx.et.priv kernel:                           asm_call_irq_on_stack+0xf/0x20
Jan 19 16:46:25 lnx.et.priv kernel:                           do_softirq_own_stack+0x56/0x60
Jan 19 16:46:25 lnx.et.priv kernel:                           irq_exit_rcu+0x74/0x80
Jan 19 16:46:25 lnx.et.priv kernel:                           sysvec_hyperv_stimer0+0x49/0xa0
Jan 19 16:46:25 lnx.et.priv kernel:                           asm_sysvec_hyperv_stimer0+0x12/0x20
Jan 19 16:46:25 lnx.et.priv kernel:                           delay_tsc+0x29/0x80
Jan 19 16:46:25 lnx.et.priv kernel:                           init_acpi_pm_clocksource+0x2a/0xd2
Jan 19 16:46:25 lnx.et.priv kernel:                           do_one_initcall+0x53/0x2b0
Jan 19 16:46:25 lnx.et.priv kernel:                           kernel_init_freeable+0x261/0x2c5
Jan 19 16:46:25 lnx.et.priv kernel:                           kernel_init+0x5/0xfe
Jan 19 16:46:25 lnx.et.priv kernel:                           ret_from_fork+0x1f/0x30
Jan 19 16:46:25 lnx.et.priv kernel:   }
Jan 19 16:46:25 lnx.et.priv kernel:   ... key      at: [<ffffffff9a01ba30>] __key.32911+0x0/0x10
Jan 19 16:46:25 lnx.et.priv kernel:   ... acquired at:
Jan 19 16:46:25 lnx.et.priv kernel:    _raw_read_lock+0x58/0x70
Jan 19 16:46:25 lnx.et.priv kernel:    led_trigger_blink_oneshot+0x2b/0x80
Jan 19 16:46:25 lnx.et.priv kernel:    ledtrig_disk_activity+0x33/0x90
Jan 19 16:46:25 lnx.et.priv kernel:    ata_qc_complete+0x1c/0x410
Jan 19 16:46:25 lnx.et.priv kernel:    ata_sff_hsm_move+0x1ca/0x6a0
Jan 19 16:46:25 lnx.et.priv kernel:    ata_sff_pio_task+0xb6/0x180
Jan 19 16:46:25 lnx.et.priv kernel:    process_one_work+0x29a/0x5c0
Jan 19 16:46:25 lnx.et.priv kernel:    worker_thread+0x28/0x3c0
Jan 19 16:46:25 lnx.et.priv kernel:    kthread+0x120/0x140
Jan 19 16:46:25 lnx.et.priv kernel:    ret_from_fork+0x1f/0x30
Jan 19 16:46:25 lnx.et.priv kernel: 
Jan 19 16:46:25 lnx.et.priv kernel: -> (&host->lock){-...}-{2:2} {
Jan 19 16:46:25 lnx.et.priv kernel:    IN-HARDIRQ-W at:
Jan 19 16:46:25 lnx.et.priv kernel:                     lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:                     _raw_spin_lock_irqsave+0x30/0x50
Jan 19 16:46:25 lnx.et.priv kernel:                     ata_bmdma_interrupt+0x1c/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel:                     __handle_irq_event_percpu+0x3e/0x290
Jan 19 16:46:25 lnx.et.priv kernel:                     handle_irq_event_percpu+0x2b/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                     handle_irq_event+0x2f/0x50
Jan 19 16:46:25 lnx.et.priv kernel:                     handle_edge_irq+0x85/0x180
Jan 19 16:46:25 lnx.et.priv kernel:                     common_interrupt+0xa6/0x1a0
Jan 19 16:46:25 lnx.et.priv kernel:                     asm_common_interrupt+0x1e/0x40
Jan 19 16:46:25 lnx.et.priv kernel:    INITIAL USE at:
Jan 19 16:46:25 lnx.et.priv kernel:                    lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:                    _raw_spin_lock_irqsave+0x30/0x50
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_dev_init+0x48/0xd0
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_link_init+0x81/0xc0
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_port_alloc+0x1c4/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_host_alloc+0xe4/0x120
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_host_alloc_pinfo+0xb/0xa0
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_pci_sff_prepare_host+0x37/0x90
Jan 19 16:46:25 lnx.et.priv kernel:                    ata_pci_bmdma_prepare_host+0xd/0x30
Jan 19 16:46:25 lnx.et.priv kernel:                    piix_init_one+0x1c3/0x57f [ata_piix]
Jan 19 16:46:25 lnx.et.priv kernel:                    local_pci_probe+0x38/0x70
Jan 19 16:46:25 lnx.et.priv kernel: device: '2:0:0:0': device_add
Jan 19 16:46:25 lnx.et.priv kernel:                    pci_device_probe+0xfa/0x1b0
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'scsi': add device 2:0:0:0
Jan 19 16:46:25 lnx.et.priv kernel:                    really_probe+0x18f/0x3bf
Jan 19 16:46:25 lnx.et.priv kernel:                    driver_probe_device.part.19+0xb0/0xe1
Jan 19 16:46:25 lnx.et.priv kernel: device: '2:0:0:0': device_add
Jan 19 16:46:25 lnx.et.priv kernel:                    device_driver_attach.cold.30+0xb/0x12
Jan 19 16:46:25 lnx.et.priv kernel:                    __driver_attach+0x4f/0x60
Jan 19 16:46:25 lnx.et.priv kernel: device: '2:0:0:0': device_add
Jan 19 16:46:25 lnx.et.priv kernel:                    bus_for_each_dev+0x72/0xb0
Jan 19 16:46:25 lnx.et.priv kernel:                    bus_add_driver.cold.14+0xe7/0x1ac
Jan 19 16:46:25 lnx.et.priv kernel: driver: 'hv_storvsc': driver_bound: bound to device '00000000-0000-8899-0000-000000000000'
Jan 19 16:46:25 lnx.et.priv kernel:                    driver_register+0x66/0xb0
Jan 19 16:46:25 lnx.et.priv kernel:                    piix_init+0x1a/0x1000 [ata_piix]
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'vmbus': really_probe: bound device 00000000-0000-8899-0000-000000000000 to driver hv_storvsc
Jan 19 16:46:25 lnx.et.priv kernel:                    do_one_initcall+0x53/0x2b0
Jan 19 16:46:25 lnx.et.priv kernel:                    do_init_module+0x55/0x200
Jan 19 16:46:25 lnx.et.priv kernel:                    load_module+0x212b/0x2220
Jan 19 16:46:25 lnx.et.priv kernel: hv_storvsc 00000000-0000-8899-0000-000000000000: driver hv_storvsc async attach completed: 1
Jan 19 16:46:25 lnx.et.priv kernel:                    __do_sys_finit_module+0x9c/0xe0
Jan 19 16:46:25 lnx.et.priv kernel:                    do_syscall_64+0x2d/0x70
Jan 19 16:46:25 lnx.et.priv kernel:                    entry_SYSCALL_64_after_hwframe+0x44/0xa9
Jan 19 16:46:25 lnx.et.priv kernel:  }
Jan 19 16:46:25 lnx.et.priv kernel:  ... key      at: [<ffffffff9a017d20>] __key.66806+0x0/0x10
Jan 19 16:46:25 lnx.et.priv kernel:  ... acquired at:
Jan 19 16:46:25 lnx.et.priv kernel:    __lock_acquire+0x973/0x2390
Jan 19 16:46:25 lnx.et.priv kernel:    lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:    _raw_spin_lock_irqsave+0x30/0x50
Jan 19 16:46:25 lnx.et.priv kernel:    ata_bmdma_interrupt+0x1c/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel:    __handle_irq_event_percpu+0x3e/0x290
Jan 19 16:46:25 lnx.et.priv kernel:    handle_irq_event_percpu+0x2b/0x70
Jan 19 16:46:25 lnx.et.priv kernel:    handle_irq_event+0x2f/0x50
Jan 19 16:46:25 lnx.et.priv kernel:    handle_edge_irq+0x85/0x180
Jan 19 16:46:25 lnx.et.priv kernel:    common_interrupt+0xa6/0x1a0
Jan 19 16:46:25 lnx.et.priv kernel:    asm_common_interrupt+0x1e/0x40
Jan 19 16:46:25 lnx.et.priv kernel: 
Jan 19 16:46:25 lnx.et.priv kernel: 
                                    stack backtrace:
Jan 19 16:46:25 lnx.et.priv kernel: CPU: 3 PID: 204 Comm: rngd Not tainted 5.10.8 #1
Jan 19 16:46:25 lnx.et.priv kernel: Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  04/28/2016
Jan 19 16:46:25 lnx.et.priv kernel: Call Trace:
Jan 19 16:46:25 lnx.et.priv kernel:  dump_stack+0x77/0x97
Jan 19 16:46:25 lnx.et.priv kernel:  mark_lock.part.53+0x854/0xb80
Jan 19 16:46:25 lnx.et.priv kernel:  ? __lock_acquire+0x3c3/0x2390
Jan 19 16:46:25 lnx.et.priv kernel:  __lock_acquire+0x973/0x2390
Jan 19 16:46:25 lnx.et.priv kernel:  lock_acquire+0xbd/0x370
Jan 19 16:46:25 lnx.et.priv kernel:  ? ata_bmdma_interrupt+0x1c/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel:  ? __lock_acquire+0x3c3/0x2390
Jan 19 16:46:25 lnx.et.priv kernel:  _raw_spin_lock_irqsave+0x30/0x50
Jan 19 16:46:25 lnx.et.priv kernel:  ? ata_bmdma_interrupt+0x1c/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel:  ata_bmdma_interrupt+0x1c/0x1e0
Jan 19 16:46:25 lnx.et.priv kernel:  __handle_irq_event_percpu+0x3e/0x290
Jan 19 16:46:25 lnx.et.priv kernel:  handle_irq_event_percpu+0x2b/0x70
Jan 19 16:46:25 lnx.et.priv kernel:  handle_irq_event+0x2f/0x50
Jan 19 16:46:25 lnx.et.priv kernel:  handle_edge_irq+0x85/0x180
Jan 19 16:46:25 lnx.et.priv kernel:  common_interrupt+0xa6/0x1a0
Jan 19 16:46:25 lnx.et.priv kernel:  ? asm_common_interrupt+0x8/0x40
Jan 19 16:46:25 lnx.et.priv kernel:  asm_common_interrupt+0x1e/0x40
Jan 19 16:46:25 lnx.et.priv kernel: RIP: 0033:0x560cfc00a594
Jan 19 16:46:25 lnx.et.priv kernel: Code: 10 48 8b 45 c8 8b 50 40 48 8b 45 c8 8b 40 48 01 d0 8d 50 ff 48 8b 45 c8 89 50 40 48 8b 45 c8 8b 40 40 ba 00 00 00 00 f7 75 dc <48> 8b 45 c8 89 50 40 48 83 45 e0 01 48 8b 45 c8 8b 40 4c 89 c2 48
Jan 19 16:46:25 lnx.et.priv kernel: RSP: 002b:00007f0c3b7fdbf0 EFLAGS: 00000206
Jan 19 16:46:25 lnx.et.priv kernel: RAX: 0000000000000000 RBX: 0000000000004097 RCX: 0000000000000000
Jan 19 16:46:25 lnx.et.priv kernel: RDX: 0000000000000416 RSI: 0000000000000000 RDI: 00007f0c3b7fdbc8
Jan 19 16:46:25 lnx.et.priv kernel: RBP: 00007f0c3b7fdc30 R08: 00007ffe0894d080 R09: 0000000000000468
Jan 19 16:46:25 lnx.et.priv kernel: R10: 0000000000000468 R11: 0000000000000002 R12: 0000000000000000
Jan 19 16:46:25 lnx.et.priv kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 00007f0c3b7fdec0
Jan 19 16:46:25 lnx.et.priv kernel: scsi host3: storvsc_host_t
Jan 19 16:46:25 lnx.et.priv kernel: device: 'host3': device_add
Jan 19 16:46:25 lnx.et.priv kernel: bus: 'scsi': add device host3
Jan 19 16:46:25 lnx.et.priv kernel: device: 'host3': device_add
Jan 19 16:46:25 lnx.et.priv kernel: scsi 3:0:1:0: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
Comment 1 Bart Van Assche 2021-01-21 04:11:42 UTC
A bisect would help a lot...

Note You need to log in before you can comment on or make changes to this bug.