All of lore.kernel.org
 help / color / mirror / Atom feed
* aic7xxx driver potentially sleeping with spin lock held in linux-2.5.48 (mm1 patch)
@ 2002-11-25 12:32 Piet/Pete Delaney
  2002-11-25 19:29 ` Andrew Morton
  0 siblings, 1 reply; 2+ messages in thread
From: Piet/Pete Delaney @ 2002-11-25 12:32 UTC (permalink / raw)
  To: linux-kernel; +Cc: Piet Delaney, Andrew Morton

I'm getting a scsi problem in the  aic7xxx driver sleeping while the preempt_count() != 0. 
Looks like we are holding a spinlock where the slab allocator could go to sleep. 

======================================================================================================================================================================================== 
                                                            linux-2.5.48 with mm1 patch without SMP Enabled
======================================================================================================================================================================================== 
(gdb) where 
#0  printk (fmt=0xc3fb1d48 " 
#1  0xc0108f9b in dump_stack () at arch/i386/kernel/traps.c:232 
#2  0xc0115be8 in __might_sleep (file=0xc035a28e "mm/slab.c", line=1304) at kernel/sched.c:2254 
#3  0xc012ecef in kmem_flagcheck (cachep=0xc3fff440, flags=496) at mm/slab.c:1304 
#4  0xc012f584 in kmalloc (size=104, flags=496) at mm/slab.c:1636 
#5  0xc029104d in aic7xxx_alloc_aic_dev (p=0xc3f7d56c, SDptr=0xc3ed3c00) at drivers/scsi/aic7xxx_old.c:6636 
#6  0xc029717d in aic7xxx_queue (cmd=0xc3efca00, fn=0xc0280f04 <scsi_done>) at drivers/scsi/aic7xxx_old.c:10341 
#7  0xc0280a26 in scsi_dispatch_cmd (SCpnt=0xc3efca00) at drivers/scsi/scsi.c:852                                <--- spin lock grabed at Line 851 just prior to call to queuecommand() 
#8  0xc0285ed2 in scsi_request_fn (q=0xc3ed3c28) at drivers/scsi/scsi_lib.c:1061 
#9  0xc0253715 in blk_insert_request (q=0xc3ed3c28, rq=0xc3efc88c, at_head=0, data=0xc3efc800) at drivers/block/ll_rw_blk.c:1456 
#10 0xc02852b7 in scsi_insert_special_req (SRpnt=0xc3efc800, at_head=0) at drivers/scsi/scsi_lib.c:112 
#11 0xc0280c35 in scsi_do_req (SRpnt=0xc3efc800, cmnd=0xc3fb1ee8, buffer=0xc0549ed4, bufflen=36, done=0xc02802ec <scsi_wait_done>, timeout=6000, retries=3) at drivers/scsi/scsi.c:1022 
#12 0xc0280b6d in scsi_wait_req (SRpnt=0xc3efc800, cmnd=0xc3fb1ee8, buffer=0xc0549ed4, bufflen=36, timeout=6000, retries=3) at drivers/scsi/scsi.c:912 
#13 0xc0286c63 in scsi_probe_lun (sreq=0xc3efc800, inq_result=0xc0549ed4 "", bflags=0xc3fb1f1c) at drivers/scsi/scsi_scan.c:1142 
#14 0xc0287165 in scsi_probe_and_add_lun (sdevscan=0xc3ed3c00, sdevnew=0x0, bflagsp=0xc3fb1f3c) at drivers/scsi/scsi_scan.c:1485 
#15 0xc0287679 in scsi_scan_target (sdevscan=0xc3ed3c00, shost=0xc3f7d400, channel=0, id=0) at drivers/scsi/scsi_scan.c:1906 
#16 0xc028779e in scan_scsis (shost=0xc3f7d400, hardcoded=0, hchannel=0, hid=0, hlun=0) at drivers/scsi/scsi_scan.c:2031 
#17 0xc02824fd in scsi_add_host (shost=0xc3f7d400) at drivers/scsi/hosts.c:311 
#18 0xc028298b in scsi_register_host (shost_tp=0xc04422a0) at drivers/scsi/hosts.c:552 
#19 0xc04f2f59 in init_this_scsi_driver () at drivers/scsi/scsi_module.c:38 
#20 0xc04e26e4 in do_initcalls () at init/main.c:467 
#21 0xc04e2713 in do_basic_setup () at init/main.c:492 
#22 0xc0105096 in init (unused=0x0) at init/main.c:529 
(gdb) 
========================================================================================================================================================================================= 

The scsi adapter is likely disabled (I'm not using it). The same configuration is 
working fine with the Redhat 8.0 linux-2.4.18-14 kernel NON-SMP kernel.  The 2.4.18-14 
SMP kernel however isn't booting. 

-- 
piet@www.piet.net


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

* Re: aic7xxx driver potentially sleeping with spin lock held in  linux-2.5.48 (mm1 patch)
  2002-11-25 12:32 aic7xxx driver potentially sleeping with spin lock held in linux-2.5.48 (mm1 patch) Piet/Pete Delaney
@ 2002-11-25 19:29 ` Andrew Morton
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2002-11-25 19:29 UTC (permalink / raw)
  To: Piet/Pete Delaney; +Cc: linux-kernel

Piet/Pete Delaney wrote:
> 
> I'm getting a scsi problem in the  aic7xxx driver sleeping while the preempt_count() != 0.
> Looks like we are holding a spinlock where the slab allocator could go to sleep.
> 
> ...
> #5  0xc029104d in aic7xxx_alloc_aic_dev (p=0xc3f7d56c, SDptr=0xc3ed3c00) at drivers/scsi/aic7xxx_old.c:6636

This does an GFP_KERNEL allocation

> #6  0xc029717d in aic7xxx_queue (cmd=0xc3efca00, fn=0xc0280f04 <scsi_done>) at drivers/scsi/aic7xxx_old.c:10341
> #7  0xc0280a26 in scsi_dispatch_cmd (SCpnt=0xc3efca00) at drivers/scsi/scsi.c:852                                <--- spin lock grabed at Line 851 just prior to call to queuecommand()

OK.

> #8  0xc0285ed2 in scsi_request_fn (q=0xc3ed3c28) at drivers/scsi/scsi_lib.c:1061
> #9  0xc0253715 in blk_insert_request (q=0xc3ed3c28, rq=0xc3efc88c, at_head=0, data=0xc3efc800) at drivers/block/ll_rw_blk.c:1456

And this took the queue lock.

It's aic7xxx_old.c.   Presumably it is headed for the scrap
heap.  The allocation is a once-off startup thing.  Probably
not worth worrying about.

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

end of thread, other threads:[~2002-11-25 19:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-25 12:32 aic7xxx driver potentially sleeping with spin lock held in linux-2.5.48 (mm1 patch) Piet/Pete Delaney
2002-11-25 19:29 ` Andrew Morton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.