Re: [BUG] lockdep splat with cpu_hotplug_lock

From: James Bottomley
Date: Thu Jul 20 2017 - 19:49:03 EST


[redirecting to linux-scsi]
On Thu, 2017-07-20 at 19:35 -0400, Steven Rostedt wrote:
> My tests triggered this splat on 4.13-rc1:
>
> Loading iSCSI transport class v2.0-870.
> QLogic NetXtreme II iSCSI Driver bnx2i v2.7.10.1 (Jul 16, 2014)
> iscsi: registered transport (bnx2i)
>
> ============================================
> WARNING: possible recursive locking detected
> 4.13.0-rc1-test+ #2 Not tainted
> --------------------------------------------
> swapper/0/1 is trying to acquire lock:
> Â(cpu_hotplug_lock.rw_sem){++++++}, at: [<ffffffffb505329e>]
> __cpuhp_setup_state+0x28/0x59
>
> but task is already holding lock:
> Â(cpu_hotplug_lock.rw_sem){++++++}, at: [<ffffffffb64d54e9>]
> bnx2i_mod_init+0x134/0x209
>
> other info that might help us debug this:
> ÂPossible unsafe locking scenario:
>
> ÂÂÂÂÂÂÂCPU0
> ÂÂÂÂÂÂÂ----
> Â lock(cpu_hotplug_lock.rw_sem);
> Â lock(cpu_hotplug_lock.rw_sem);
>
> Â*** DEADLOCK ***
>
> ÂMay be due to missing lock nesting notation
>
> 1 lock held by swapper/0/1:
> Â#0:ÂÂ(cpu_hotplug_lock.rw_sem){++++++}, at: [<ffffffffb64d54e9>]
> bnx2i_mod_init+0x134/0x209
>
> stack backtrace:
> CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.13.0-rc1-test+ #2
> Hardware name: MSI MS-7823/CSM-H87M-G43 (MS-7823), BIOS V1.6
> 02/22/2014
> Call Trace:
> Âdump_stack+0x68/0x92
> Â__lock_acquire+0x84b/0xebb
> Â? __lock_is_held+0x47/0x7a
> Â? mark_held_locks+0x5e/0x74
> Â? _raw_spin_unlock_irqrestore+0x40/0x47
> Âlock_acquire+0x108/0x19c
> Â? lock_acquire+0x108/0x19c
> Â? __cpuhp_setup_state+0x28/0x59
> Âcpus_read_lock+0x2f/0x5f
> Â? __cpuhp_setup_state+0x28/0x59
> Â__cpuhp_setup_state+0x28/0x59
> Â? bnx2i_percpu_thread_create+0x79/0x79
> Âbnx2i_mod_init+0x17a/0x209
> Â? iscsi_transport_init+0x1c1/0x1c1
> Â? set_debug_rodata+0x17/0x17
> Âdo_one_initcall+0x90/0x131
> Â? set_debug_rodata+0x17/0x17
> Âkernel_init_freeable+0x1e5/0x26d
> Â? rest_init+0xd8/0xd8
> Âkernel_init+0xe/0xfa
> Âret_from_fork+0x27/0x40
> ahci 0000:00:1f.2: version 3.0
> ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x3 impl
> SATA mode
> ahci 0000:00:1f.2: flags: 64bit ncq led clo pio slum part ems apst
> scsi host0: ahci
>
> I'd let the powers that be figure it out.

It sounds like it's an annotation issue not an actual problem. ÂI've
added the correct list, so hopefully our usual enthusiasts can take a
look.

James