Re: Unable to unload kvm-intel module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 14, 2011 at 1:32 AM, Avi Kivity <avi@xxxxxxxxxx> wrote:
> On 06/13/2011 08:11 PM, AP wrote:
>>
>> On Sun, Jun 12, 2011 at 8:35 AM, Avi Kivity<avi@xxxxxxxxxx>  wrote:
>> >  On 06/11/2011 03:02 AM, AP wrote:
>> >>
>> >>  I am building kvm as an external module against 2.6.38-8 (Ubuntu 11.04
>> >>  kernel).
>> >
>> >  Why?
>>
>> I did not want move to the new kernel from kvm.git.
>
> I generally find that it works well, though I only run it on servers.
>
>> I just wanted to
>> upgrade to the latest kvm module for some development. Is there a way
>> to use the kvm.git tree and only build and load kvm?
>
> kvm-kmod.

That is what I am using and running in to the permanent module issue.

>> >>  The kvm.ko and kvm-intel.ko build and insmod without any
>> >>  issues. However I am able to unload the kvm-intel module. Here is the
>> >>  lsmod listing:
>> >>
>> >>  kvm_intel             135653  0 [permanent]
>> >>  kvm                   381130  1 kvm_intel,[permanent]
>> >>
>> >>  This is the error I get when I try to unload the module:
>> >>
>> >>  ERROR: Removing 'kvm_intel': Device or resource busy
>> >>
>> >>  Do I need to do anything special during building for
>> >>  CONFIG_MODULE_UNLOAD to take effect?
>> >>
>> >
>> >  No, as far as I know it should just work, and always has for me.  But
>> > it
>> >  does say [permanent].  Any clue why in dmesg?
>>
>> The only thing I see in dmesg is:
>> loaded kvm module (v2.6.39-8627-g2c2b5df)
>
>        if (mod->init != NULL && mod->exit == NULL) {
>                printed_something = 1;
>                seq_printf(m, "[permanent],");
>        }
>
> I don't recall anything in kvm-kmod playing with these, so it's a mystery
> why this happens.
>
> kvm.ko doesn't have an init or exit function.  kvm-intel.ko has both.
>  Wierd.

When I look at kvm.mod.c and kvm-intel.mod.c which I think are built
on the fly during compile time, I see the following:

struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
 .name = KBUILD_MODNAME,
 .init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
 .exit = cleanup_module,
#endif
 .arch = MODULE_ARCH_INIT,
};

My fear is that for some reason CONFIG_MODULE_UNLOAD is not getting
set and hence .exit fields are not being compiled. Though I am not
completely sure of this.

AP
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux