| commit a0fa82085e175bf8ce6d69a3f83695f81af2a649 |
| Author: Gleb Natapov <gleb@redhat.com> |
| Date: Thu Dec 15 12:44:05 2011 +0200 |
| |
| enable architectural PMU cpuid leaf for kvm |
| |
| Signed-off-by: Gleb Natapov <gleb@redhat.com> |
| Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> |
| |
| diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c |
| index 0b3af90..91a104b 100644 |
| |
| |
| @@ -1180,10 +1180,19 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, |
| break; |
| case 0xA: |
| /* Architectural Performance Monitoring Leaf */ |
| - *eax = 0; |
| - *ebx = 0; |
| - *ecx = 0; |
| - *edx = 0; |
| + if (kvm_enabled()) { |
| + KVMState *s = env->kvm_state; |
| + |
| + *eax = kvm_arch_get_supported_cpuid(s, 0xA, count, R_EAX); |
| + *ebx = kvm_arch_get_supported_cpuid(s, 0xA, count, R_EBX); |
| + *ecx = kvm_arch_get_supported_cpuid(s, 0xA, count, R_ECX); |
| + *edx = kvm_arch_get_supported_cpuid(s, 0xA, count, R_EDX); |
| + } else { |
| + *eax = 0; |
| + *ebx = 0; |
| + *ecx = 0; |
| + *edx = 0; |
| + } |
| break; |
| case 0xD: |
| /* Processor Extended State */ |