From: Paolo Bonzini <pbonzini@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>, qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org
Subject: Re: [RFC PATCH] kvm: Enable -cpu option to hide KVM
Date: Sun, 01 Jun 2014 20:29:19 +0200 [thread overview]
Message-ID: <538B70FF.6050103@redhat.com> (raw)
In-Reply-To: <20140601162414.28708.22775.stgit@bling.home>
Il 01/06/2014 18:25, Alex Williamson ha scritto:
> The latest Nvidia driver (337.88) specifically checks for KVM as the
> hypervisor and reports Code 43 for the driver in a Windows guest when
> found. Removing or changing the KVM signature is sufficient to allow
> the driver to load. This patch adds an option to easily allow the KVM
> hypervisor signature to be hidden using '-cpu no-kvm'.
>
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
It's really a nit, but I think "kvm=no" is preferrable (more consistent
with how hyper-v leaves are enabled).
Paolo
> ---
> target-i386/cpu-qom.h | 1 +
> target-i386/cpu.c | 1 +
> target-i386/kvm.c | 28 +++++++++++++++-------------
> 3 files changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
> index e9b3d57..99bb059 100644
> --- a/target-i386/cpu-qom.h
> +++ b/target-i386/cpu-qom.h
> @@ -87,6 +87,7 @@ typedef struct X86CPU {
> bool hyperv_time;
> bool check_cpuid;
> bool enforce_cpuid;
> + bool no_kvm;
>
> /* if true the CPUID code directly forward host cache leaves to the guest */
> bool cache_info_passthrough;
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 042a48d..8e6ce9c 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -2792,6 +2792,7 @@ static Property x86_cpu_properties[] = {
> DEFINE_PROP_BOOL("hv-time", X86CPU, hyperv_time, false),
> DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, false),
> DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
> + DEFINE_PROP_BOOL("no-kvm", X86CPU, no_kvm, false),
> DEFINE_PROP_END_OF_LIST()
> };
>
> diff --git a/target-i386/kvm.c b/target-i386/kvm.c
> index 0d894ef..920898e 100644
> --- a/target-i386/kvm.c
> +++ b/target-i386/kvm.c
> @@ -528,23 +528,25 @@ int kvm_arch_init_vcpu(CPUState *cs)
> has_msr_hv_hypercall = true;
> }
>
> - memcpy(signature, "KVMKVMKVM\0\0\0", 12);
> - c = &cpuid_data.entries[cpuid_i++];
> - c->function = KVM_CPUID_SIGNATURE | kvm_base;
> - c->eax = 0;
> - c->ebx = signature[0];
> - c->ecx = signature[1];
> - c->edx = signature[2];
> + if (!cpu->no_kvm) {
> + memcpy(signature, "KVMKVMKVM\0\0\0", 12);
> + c = &cpuid_data.entries[cpuid_i++];
> + c->function = KVM_CPUID_SIGNATURE | kvm_base;
> + c->eax = 0;
> + c->ebx = signature[0];
> + c->ecx = signature[1];
> + c->edx = signature[2];
>
> - c = &cpuid_data.entries[cpuid_i++];
> - c->function = KVM_CPUID_FEATURES | kvm_base;
> - c->eax = env->features[FEAT_KVM];
> + c = &cpuid_data.entries[cpuid_i++];
> + c->function = KVM_CPUID_FEATURES | kvm_base;
> + c->eax = env->features[FEAT_KVM];
>
> - has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
> + has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
>
> - has_msr_pv_eoi_en = c->eax & (1 << KVM_FEATURE_PV_EOI);
> + has_msr_pv_eoi_en = c->eax & (1 << KVM_FEATURE_PV_EOI);
>
> - has_msr_kvm_steal_time = c->eax & (1 << KVM_FEATURE_STEAL_TIME);
> + has_msr_kvm_steal_time = c->eax & (1 << KVM_FEATURE_STEAL_TIME);
> + }
>
> cpu_x86_cpuid(env, 0, 0, &limit, &unused, &unused, &unused);
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>, qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC PATCH] kvm: Enable -cpu option to hide KVM
Date: Sun, 01 Jun 2014 20:29:19 +0200 [thread overview]
Message-ID: <538B70FF.6050103@redhat.com> (raw)
In-Reply-To: <20140601162414.28708.22775.stgit@bling.home>
Il 01/06/2014 18:25, Alex Williamson ha scritto:
> The latest Nvidia driver (337.88) specifically checks for KVM as the
> hypervisor and reports Code 43 for the driver in a Windows guest when
> found. Removing or changing the KVM signature is sufficient to allow
> the driver to load. This patch adds an option to easily allow the KVM
> hypervisor signature to be hidden using '-cpu no-kvm'.
>
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
It's really a nit, but I think "kvm=no" is preferrable (more consistent
with how hyper-v leaves are enabled).
Paolo
> ---
> target-i386/cpu-qom.h | 1 +
> target-i386/cpu.c | 1 +
> target-i386/kvm.c | 28 +++++++++++++++-------------
> 3 files changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/target-i386/cpu-qom.h b/target-i386/cpu-qom.h
> index e9b3d57..99bb059 100644
> --- a/target-i386/cpu-qom.h
> +++ b/target-i386/cpu-qom.h
> @@ -87,6 +87,7 @@ typedef struct X86CPU {
> bool hyperv_time;
> bool check_cpuid;
> bool enforce_cpuid;
> + bool no_kvm;
>
> /* if true the CPUID code directly forward host cache leaves to the guest */
> bool cache_info_passthrough;
> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
> index 042a48d..8e6ce9c 100644
> --- a/target-i386/cpu.c
> +++ b/target-i386/cpu.c
> @@ -2792,6 +2792,7 @@ static Property x86_cpu_properties[] = {
> DEFINE_PROP_BOOL("hv-time", X86CPU, hyperv_time, false),
> DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, false),
> DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
> + DEFINE_PROP_BOOL("no-kvm", X86CPU, no_kvm, false),
> DEFINE_PROP_END_OF_LIST()
> };
>
> diff --git a/target-i386/kvm.c b/target-i386/kvm.c
> index 0d894ef..920898e 100644
> --- a/target-i386/kvm.c
> +++ b/target-i386/kvm.c
> @@ -528,23 +528,25 @@ int kvm_arch_init_vcpu(CPUState *cs)
> has_msr_hv_hypercall = true;
> }
>
> - memcpy(signature, "KVMKVMKVM\0\0\0", 12);
> - c = &cpuid_data.entries[cpuid_i++];
> - c->function = KVM_CPUID_SIGNATURE | kvm_base;
> - c->eax = 0;
> - c->ebx = signature[0];
> - c->ecx = signature[1];
> - c->edx = signature[2];
> + if (!cpu->no_kvm) {
> + memcpy(signature, "KVMKVMKVM\0\0\0", 12);
> + c = &cpuid_data.entries[cpuid_i++];
> + c->function = KVM_CPUID_SIGNATURE | kvm_base;
> + c->eax = 0;
> + c->ebx = signature[0];
> + c->ecx = signature[1];
> + c->edx = signature[2];
>
> - c = &cpuid_data.entries[cpuid_i++];
> - c->function = KVM_CPUID_FEATURES | kvm_base;
> - c->eax = env->features[FEAT_KVM];
> + c = &cpuid_data.entries[cpuid_i++];
> + c->function = KVM_CPUID_FEATURES | kvm_base;
> + c->eax = env->features[FEAT_KVM];
>
> - has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
> + has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
>
> - has_msr_pv_eoi_en = c->eax & (1 << KVM_FEATURE_PV_EOI);
> + has_msr_pv_eoi_en = c->eax & (1 << KVM_FEATURE_PV_EOI);
>
> - has_msr_kvm_steal_time = c->eax & (1 << KVM_FEATURE_STEAL_TIME);
> + has_msr_kvm_steal_time = c->eax & (1 << KVM_FEATURE_STEAL_TIME);
> + }
>
> cpu_x86_cpuid(env, 0, 0, &limit, &unused, &unused, &unused);
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2014-06-01 18:29 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-01 16:25 [RFC PATCH] kvm: Enable -cpu option to hide KVM Alex Williamson
2014-06-01 16:25 ` [Qemu-devel] " Alex Williamson
2014-06-01 18:29 ` Paolo Bonzini [this message]
2014-06-01 18:29 ` Paolo Bonzini
2014-06-01 21:11 ` Alex Williamson
2014-06-01 21:11 ` [Qemu-devel] " Alex Williamson
2014-06-02 7:09 ` Paolo Bonzini
2014-06-02 7:09 ` [Qemu-devel] " Paolo Bonzini
2014-06-02 14:42 ` Alex Williamson
2014-06-02 14:42 ` [Qemu-devel] " Alex Williamson
2014-06-02 15:55 ` Paolo Bonzini
2014-06-02 15:55 ` [Qemu-devel] " Paolo Bonzini
2014-06-02 10:32 ` Michael Tokarev
2014-06-02 10:32 ` [Qemu-devel] " Michael Tokarev
2014-06-02 13:30 ` Alex Williamson
2014-06-02 13:30 ` [Qemu-devel] " Alex Williamson
2014-06-02 15:55 ` Paolo Bonzini
2014-06-02 15:55 ` [Qemu-devel] " Paolo Bonzini
2014-06-02 18:01 ` Michael Tokarev
2014-06-02 18:01 ` [Qemu-devel] " Michael Tokarev
2014-06-02 18:37 ` Alex Williamson
2014-06-02 18:37 ` [Qemu-devel] " Alex Williamson
2014-06-02 19:03 ` Bandan Das
2014-06-02 19:03 ` [Qemu-devel] " Bandan Das
2014-06-02 19:18 ` Alex Williamson
2014-06-02 19:18 ` [Qemu-devel] " Alex Williamson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=538B70FF.6050103@redhat.com \
--to=pbonzini@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.