Re: [PATCH 3.12-rc7] KVM: Fix modprobe failure for kvm_intel/kvm_amd

Paolo Bonzini
2013-10-29T17:17:22Z

Il 29/10/2013 16:13, Tim Gardner ha scritto:
> The x86 specific kvm init creates a new conflicting
> debugfs directory which causes modprobe issues
> with kvm_intel and kvm_amd. For example,
>
> sudo modprobe kvm_amd
> modprobe: ERROR: could not insert 'kvm_amd': Bad address
>
> The simplest fix is to just rename the directory. The following
> KVM config options are set:
>
> CONFIG_KVM_GUEST=y
> CONFIG_KVM_DEBUG_FS=y
> CONFIG_HAVE_KVM=y
> CONFIG_HAVE_KVM_IRQCHIP=y
> CONFIG_HAVE_KVM_IRQ_ROUTING=y
> CONFIG_HAVE_KVM_EVENTFD=y
> CONFIG_KVM_APIC_ARCHITECTURE=y
> CONFIG_KVM_MMIO=y
> CONFIG_KVM_ASYNC_PF=y
> CONFIG_HAVE_KVM_MSI=y
> CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
> CONFIG_KVM=m
> CONFIG_KVM_INTEL=m
> CONFIG_KVM_AMD=m
> # CONFIG_KVM_MMU_AUDIT is not set
> CONFIG_KVM_DEVICE_ASSIGNMENT=y
>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Gleb Natapov <gleb@redhat.com>
> Cc: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
> Cc: Marcelo Tosatti <mtosatti@redhat.com>
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> ---
>
> There is likely a more elegant and complicated way to solve this
> problem, but a simple rename for a debug feature seems best,
> especially for an -rc7.

I agree, but I'd prefer "kvm-pv" to distinguish x86-specific KVM
features on the host (the debugfs directory that Linus was complaining
about) from KVM features that require guest cooperation (this case).

I'll send a pull request tomorrow.

Paolo

> arch/x86/kernel/kvm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
> index a0e2a8a..d17895a 100644
> --- a/arch/x86/kernel/kvm.c
> +++ b/arch/x86/kernel/kvm.c
> @@ -609,7 +609,7 @@ static struct dentry *d_kvm_debug;
>
> struct dentry *kvm_init_debugfs(void)
> {
> - d_kvm_debug = debugfs_create_dir("kvm", NULL);
> + d_kvm_debug = debugfs_create_dir("kvm-x86", NULL);
> if (!d_kvm_debug)
> printk(KERN_WARNING "Could not create 'kvm' debugfs directory\n");
>
>