kld regression

Andriy Gapon avg at icyb.net.ua
Thu Jan 31 10:00:52 PST 2008

on 31/01/2008 18:52 John Baldwin said the following:
> On Thursday 31 January 2008 10:05:57 am Andriy Gapon wrote:
>> on 31/01/2008 14:39 Andriy Gapon said the following:
>>> on 31/01/2008 13:07 John Baldwin said the following:
>>>> On Wednesday 30 January 2008 12:39:14 pm Andriy Gapon wrote:
>>>>> The problem is as follows:
>>>>> 1. put udf_load="YES" in loader.conf
>>>>> 2. you can mount and unmount udf filesystems
>>>>> 3. you can kldunload udf if no udf filesystems are mounted
>>>>> 4. now mount udf fs while udf.ko is unloaded
>>>>> 5. udf is auto loaded and fs is mounted
>>>>> 6. unmount fs
>>>>> 7. try to kldunload udf
>>>>> kldunload: can't unload file: Device busy
>>>>> kernel message: kldunload: attempt to unload file that was loaded by the
>>>>> kernel
>>>>> Yeah, it was loaded by kernel indeed, but WTF - what is the difference
>>>>> from manual/loader.conf loading and why I can not manage my modules as I
>>>>> wish?
>>>> Hmm, the relevant code (vfs_init.c) hasn't changed in 6.x since 6.0.  
> There 
>>>> were some changes in 7.0, but this should work in both branches.  What is 
> the 
>>>> previous release that this worked on?
>>> Maybe I was wrong when I called this regression, but this was very
>>> surprising behavior for me. And in 5.X I did a lot of udf
>>> debugging/experimenting and never encountered such a problem. Maybe I
>>> always did kldload before mount, I can't tell now.
>>> Anyway, this seems like an annoyance at the very least, pinning a kernel
>>> module without any important reasons.
>> Hmm, I found one difference with previous setups: in step 1 I also have
>> udf_iconv_load="YES" and udf_iconv.ko module is what seems to prevent
>> udf.ko from unloading in step 7. I can actually unload udf_iconv and
>> then I am able again to unload udf.
>> Still don't understand what is a big difference here.
>> And if I had UDF_ICONV built into kernel then I wouldn't have this
>> work-around.
> Ah, I don't think we can safely unload modules loaded from the loader IIRC.


maybe there is a small misunderstanding:
1. udf.ko and udf_iconv.ko are both loaded by loader - I *can* unload udf.ko
2. udf_iconv.ko is loaded by loader but udf.ko is auto-loaded (by
whatever) when I do mount_udf - I can not unload udf.ko unless I unload

This is inconsistent and there is no obvious reason for things being
this way.

Andriy Gapon

More information about the freebsd-stable mailing list