On Tue Nov  9 10, John Baldwin wrote:
> On Tuesday, November 09, 2010 9:10:28 am Alexander Best wrote:
> > On Tue Nov  9 10, John Baldwin wrote:
> > > On Tuesday, November 09, 2010 6:46:12 am Alexander Best wrote:
> > > > hi there,
> > > > 
> > > > i posted this message on freebsd-questions@, but nobody could help me 
> > > > with it.
> > > > to me this looks like a bug, so i assume posting it again here on
> > > > freebsd-current@ might be better.
> > > > 
> > > > please keep in mind that the issue here is not the fact that the second 
> > > > attempt
> > > > to unload sound.ko/netgraph.ko fails. it *should* fail, because both 
> > > > modules
> > > > have dependencies. however it should fail with the first attempt. right 
> > > > now
> > > > kldunloadf() returns zero, whereas it should actually return EBUSY 
> > > > (just like
> > > > the second attempt).
> > > > 
> > > > i've attached two kdump outputs: one for the first 'kldunload' attempt 
> > > > and one
> > > > for the second. as you can see the problem is that for some reason 
> > > > kldunloadf()
> > > > returns zero, although it couldn't unload the module.
> > > 
> > > Did you get an error message in dmesg?  If you have manually loaded
> > > netgraph.ko (via netgraph_load="YES" in loader.conf or an explicit 
> > > kldload)
> > > and then loaded other modules that depend on it (such as ng_foo.ko) then 
> > > this
> > > is expected behavior.  What your kldunload has done is to remove the 
> > > manual
> > > reference from loader.conf or 'kldload netgraph.ko'.  What this changes 
> > > is what
> > > happens when you do 'kldunload ng_foo.ko'.  If you unload ng_foo.ko now, 
> > > then
> > > netgraph.ko will also be unloaded when its last reference drops (in this 
> > > case
> > > it looks like you actually have two ng_*.ko objects loaded, so you would 
> > > have
> > > to unload both of them, but I will assume a single ng_foo.ko to make the
> > > explanation simpler).  If you had not done 'kldunload netgraph.ko' but had
> > > done 'kldunload ng_foo.ko', then the manual reference would have kept 
> > > netgraph.ko
> > > loaded.
> > > 
> > > All this logic exists so that if you do 'kldload foo.ko' and it 
> > > auto-loads bar.ko
> > > as a dependency, then doing 'kldunload bar.ko' will unload both foo.ko 
> > > and bar.ko.
> > 
> > i have ng_ubt_load="YES" in my loader.conf and kldstat says:
> > 
> > Id Refs Address            Size     Name
> >  1   37 0xffffffff80100000 a2ddb8   kernel
> >  2    1 0xffffffff80b2e000 295e8    snd_hda.ko
> >  3    1 0xffffffff80b58000 85110    sound.ko
> >  4    1 0xffffffff80bde000 cf79e0   nvidia.ko
> >  5    5 0xffffffff818d6000 418c0    linux.ko
> >  6    1 0xffffffff81918000 80e8     ng_ubt.ko
> >  7    2 0xffffffff81921000 fa78     ng_hci.ko
> >  8    2 0xffffffff81931000 2bd0     ng_bluetooth.ko
> >  9    3 0xffffffff81934000 15e68    netgraph.ko
> > 10    1 0xffffffff81a12000 3efb     linprocfs.ko
> > 11    3 0xffffffff81a16000 4698     pseudofs.ko
> > 12    1 0xffffffff81a1b000 31b3     procfs.ko
> > 13    1 0xffffffff81a1f000 a37      linsysfs.ko
> > 14    1 0xffffffff81a20000 6f4      rtc.ko
> > 
> > also the same happens with sound.ko. i have snd_hda_load="yes". and i think
> > snd_hda is the only dependecy for sound.ko.
> > 
> > there was no error message in dmesg for the first kldunload attempt.
> > 
> > i think i understand the logic, however the current behavior does not 
> > confirm
> > to the description in kldunload(2).
> 
> Hmm, ok, fair enough.  Do you get the same behavior if you kldload ng_ubt.ko
> after boot?

i'll try that in a minute. this behavior also seems very odd:
 
1) kldstat reports netgraph.ko *not* loaded
2) kldload netgraph
3) kldunload netgraph fails with EBUSY, although kldstat reports only a single
   REF for netgraph.

could this be caused by an out of sync kernel and world?

cheers.
alex

> 
> -- 
> John Baldwin

-- 
a13x
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to