From owner-freebsd-stable@FreeBSD.ORG Thu Jan 31 18:00:52 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD39316A418; Thu, 31 Jan 2008 18:00:52 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from falcon.cybervisiontech.com (falcon.cybervisiontech.com [217.20.163.9]) by mx1.freebsd.org (Postfix) with ESMTP id 4C26313C47E; Thu, 31 Jan 2008 18:00:52 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from localhost (localhost [127.0.0.1]) by falcon.cybervisiontech.com (Postfix) with ESMTP id 763CB744007; Thu, 31 Jan 2008 20:00:50 +0200 (EET) X-Virus-Scanned: Debian amavisd-new at falcon.cybervisiontech.com Received: from falcon.cybervisiontech.com ([127.0.0.1]) by localhost (falcon.cybervisiontech.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PDAYZZyKNc4h; Thu, 31 Jan 2008 20:00:50 +0200 (EET) Received: from [10.2.1.87] (gateway.cybervisiontech.com.ua [88.81.251.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by falcon.cybervisiontech.com (Postfix) with ESMTP id 0E0D7744004; Thu, 31 Jan 2008 20:00:49 +0200 (EET) Message-ID: <47A20CCB.9020104@icyb.net.ua> Date: Thu, 31 Jan 2008 20:00:43 +0200 From: Andriy Gapon User-Agent: Thunderbird 2.0.0.9 (X11/20080123) MIME-Version: 1.0 To: John Baldwin References: <47A0B642.9060000@icyb.net.ua> <47A1C198.6090802@icyb.net.ua> <47A1E3D5.6040301@icyb.net.ua> <200801311152.40064.jhb@freebsd.org> In-Reply-To: <200801311152.40064.jhb@freebsd.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: freebsd-stable@freebsd.org Subject: Re: kld regression X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jan 2008 18:00:52 -0000 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