Date: Thu, 31 Jan 2008 20:00:43 +0200 From: Andriy Gapon <avg@icyb.net.ua> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-stable@freebsd.org Subject: Re: kld regression Message-ID: <47A20CCB.9020104@icyb.net.ua> In-Reply-To: <200801311152.40064.jhb@freebsd.org> References: <47A0B642.9060000@icyb.net.ua> <47A1C198.6090802@icyb.net.ua> <47A1E3D5.6040301@icyb.net.ua> <200801311152.40064.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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. > John, 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 udf_iconv.ko. This is inconsistent and there is no obvious reason for things being this way. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47A20CCB.9020104>