diff mbox

qemu-kvm: remove "KVM misreports CPUID" hack

Message ID 1246623839-24572-1-git-send-email-andre.przywara@amd.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andre Przywara July 3, 2009, 12:23 p.m. UTC
This should be no longer necessary.
Effectively reverts 143eb2bd043e82bcf353cf82d33c127f06411d82.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
---
 kvm/libkvm/libkvm-x86.c |    9 ---------
 qemu-kvm-x86.c          |    9 ---------
 2 files changed, 0 insertions(+), 18 deletions(-)

Hi Avi,

I am not sure what caused your problem back in May when you committed this,
but it seems to work without this now. I booted Win7RC 64bit and WinXP 64bit
and saw no problems.

Regards,
Andre.

Comments

Avi Kivity July 4, 2009, 3:21 p.m. UTC | #1
On 07/03/2009 03:23 PM, Andre Przywara wrote:
> This should be no longer necessary.
> Effectively reverts 143eb2bd043e82bcf353cf82d33c127f06411d82.
>
> Signed-off-by: Andre Przywara<andre.przywara@amd.com>
> ---
>   kvm/libkvm/libkvm-x86.c |    9 ---------
>   qemu-kvm-x86.c          |    9 ---------
>   2 files changed, 0 insertions(+), 18 deletions(-)
>
> Hi Avi,
>
> I am not sure what caused your problem back in May when you committed this,
> but it seems to work without this now. I booted Win7RC 64bit and WinXP 64bit
> and saw no problems.
>    

It's necessary for backwards compatibility.  Older kvm versions 
misreported these bits, so we need to fix them up in userspace.
diff mbox

Patch

diff --git a/kvm/libkvm/libkvm-x86.c b/kvm/libkvm/libkvm-x86.c
index 9ca77d5..67f41b4 100644
--- a/kvm/libkvm/libkvm-x86.c
+++ b/kvm/libkvm/libkvm-x86.c
@@ -639,15 +639,6 @@  uint32_t kvm_get_supported_cpuid(kvm_context_t kvm, uint32_t function, int reg)
 				break;
 			case R_EDX:
 				ret = cpuid->entries[i].edx;
-                                if (function == 1) {
-                                    /* kvm misreports the following features
-                                     */
-                                    ret |= 1 << 12; /* MTRR */
-                                    ret |= 1 << 16; /* PAT */
-                                    ret |= 1 << 7;  /* MCE */
-                                    ret |= 1 << 14; /* MCA */
-                                }
-
 				/* On Intel, kvm returns cpuid according to
 				 * the Intel spec, so add missing bits
 				 * according to the AMD spec:
diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
index 7505380..2811665 100644
--- a/qemu-kvm-x86.c
+++ b/qemu-kvm-x86.c
@@ -649,15 +649,6 @@  uint32_t kvm_get_supported_cpuid(kvm_context_t kvm, uint32_t function, int reg)
 				break;
 			case R_EDX:
 				ret = cpuid->entries[i].edx;
-                                if (function == 1) {
-                                    /* kvm misreports the following features
-                                     */
-                                    ret |= 1 << 12; /* MTRR */
-                                    ret |= 1 << 16; /* PAT */
-                                    ret |= 1 << 7;  /* MCE */
-                                    ret |= 1 << 14; /* MCA */
-                                }
-
 				/* On Intel, kvm returns cpuid according to
 				 * the Intel spec, so add missing bits
 				 * according to the AMD spec: