From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:36377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RbCzd-0007kb-7Q for qemu-devel@nongnu.org; Thu, 15 Dec 2011 10:13:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RbCzZ-0002Ks-B8 for qemu-devel@nongnu.org; Thu, 15 Dec 2011 10:13:09 -0500 Received: from mx1.redhat.com ([209.132.183.28]:6058) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RbCzZ-0002Kh-16 for qemu-devel@nongnu.org; Thu, 15 Dec 2011 10:13:05 -0500 Date: Thu, 15 Dec 2011 17:13:02 +0200 From: Gleb Natapov Message-ID: <20111215151302.GF12029@redhat.com> References: <20111215104405.GD21664@redhat.com> <4EEA0DAC.3090209@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4EEA0DAC.3090209@codemonkey.ws> Subject: Re: [Qemu-devel] [PATCH] enable architectural PMU cpuid leaf for kvm List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: mtosatti@redhat.com, qemu-devel@nongnu.org, avi@redhat.com On Thu, Dec 15, 2011 at 09:09:32AM -0600, Anthony Liguori wrote: > On 12/15/2011 04:44 AM, Gleb Natapov wrote: > > > >Signed-off-by: Gleb Natapov > > This should go in via uq/master. uq/master maintainers can you take it? > > Regards, > > Anthony Liguori > > >diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c > >index 0b3af90..91a104b 100644 > >--- a/target-i386/cpuid.c > >+++ b/target-i386/cpuid.c > >@@ -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 */ > >-- > > Gleb. > > > > -- Gleb.