lkml.org 
[lkml]   [2004]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectReally need help understanding why rmmod osst hangs whenever osst gets loaded by hotplug at boot
So nobody knows how this works? Thanks, Willem Riede.
---
On 10/31/2004 09:24:10 AM, Willem Riede wrote:
> Folks,
>
> I need some help here. I've been wrecking my brain to understand why
> "rmmod osst" works just fine whenever I perfom the "modprobe osst"
> manually from a terminal but always hangs when I coax hotplug (by a
> modified /etc/hotplug/scsi.agent) to do the loading at boot time...
>
> [root@fallguy osst]# ps alx
> F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
> 4 0 3509 3472 17 0 3124 380 - D+ pts/1 0:00 rmmod osst
>
> It is the call to "scsi_unregister_driver(&osst_template.gendrv)" that
> doesn't return. AFAICT, this can only be due to "down(&drv->unload_sem)"
> in driver_unregister() at line 111 of linux-2.6.9/drivers/base/driver.c.
>
> For that semaphore to be free a call to "up(&drv->unload_sem)" in
> driver_release() at line 68 of linux-2.6.9/drivers/base/bus.c is needed.
>
> That would happen if osst_template.gendrv.bus->subsys.kset.kobj.kref.refcount
>
> reached zero in put_bus() called from bus_remove_driver() [put_bus
> translates
>
> into a kobject_put which does kref_put(&kobj->kref, kobject_release), which
> is documented to "Decrement the refcount, and if 0, call kobject_cleanup()",
> with kobject_cleanup doing "get_ktype(kobj)->release(kobj)"].
>
> Having traced all that, and created some debug output fromm osst, I'm now
> even more baffled -- the refcount is 14 regardless of when/how osst was
> loaded at the time of the call to scsi_unregister_driver (the only difference
> is that it already reached 14 when osst initialized, if osst gets loaded at
> boot time register_driver makes it 10, with 4 references counted later).
>
> The other counts must be from the other drivers on the "scsi" bus:
> [root@fallguy ~]# ls /sys/bus/scsi/drivers
> osst sd sr st
>
> There should be no way that refcount can make it back to zero, which would
> imply that rmmod osst should always hang. But it doesn't. Which must mean
> that I don't realy understand what's going on :-(
>
> So I'm lost, which is why I'm asking for help :-) . Can somebody explain it?
>
> (by the way, I can get rmmod st to hang in the same way)
>
> For the record - I'm doing this testing on a scsi based dual PIII machine
> running Fedora Core release 2.92 (FC3 Test 3) kernel 2.6.9-1.643smp.
>
> Thanks, Willem Riede.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:07    [W:0.035 / U:0.676 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site