linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG] lockdep splat with cpu_hotplug_lock
@ 2017-07-20 23:35 Steven Rostedt
  2017-07-20 23:48 ` James Bottomley
  0 siblings, 1 reply; 3+ messages in thread
From: Steven Rostedt @ 2017-07-20 23:35 UTC (permalink / raw)
  To: LKML
  Cc: Thomas Gleixner, QLogic-Storage-Upstream, martin.petersen,
	James Bottomley

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.

-- Steve

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [BUG] lockdep splat with cpu_hotplug_lock
  2017-07-20 23:35 [BUG] lockdep splat with cpu_hotplug_lock Steven Rostedt
@ 2017-07-20 23:48 ` James Bottomley
  2017-07-21  9:42   ` Thomas Gleixner
  0 siblings, 1 reply; 3+ messages in thread
From: James Bottomley @ 2017-07-20 23:48 UTC (permalink / raw)
  To: Steven Rostedt, LKML, linux-scsi
  Cc: Thomas Gleixner, QLogic-Storage-Upstream, martin.petersen

[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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [BUG] lockdep splat with cpu_hotplug_lock
  2017-07-20 23:48 ` James Bottomley
@ 2017-07-21  9:42   ` Thomas Gleixner
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2017-07-21  9:42 UTC (permalink / raw)
  To: James Bottomley
  Cc: Steven Rostedt, LKML, linux-scsi, QLogic-Storage-Upstream,
	martin.petersen

[-- Attachment #1: Type: text/plain, Size: 1280 bytes --]

On Thu, 20 Jul 2017, James Bottomley wrote:
> [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);
> 
> 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.

Nope. It's a recursive locking/\ of cpuhotplug lock. I'll have a look on
monday.

Thanks,

	tglx


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-21  9:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-20 23:35 [BUG] lockdep splat with cpu_hotplug_lock Steven Rostedt
2017-07-20 23:48 ` James Bottomley
2017-07-21  9:42   ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).