From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH] KVM: svm: virtualize MSR reads from MC4_MISC1 Date: Wed, 09 Jul 2014 18:26:23 +0200 Message-ID: <53BD6D2F.8070504@redhat.com> References: <1403785327-1357-1-git-send-email-matthias.lange@kernkonzept.com> <1403785327-1357-2-git-send-email-matthias.lange@kernkonzept.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit To: Matthias Lange , kvm@vger.kernel.org, Gleb Natapov Return-path: Received: from mx1.redhat.com ([209.132.183.28]:26577 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751724AbaGIQ03 (ORCPT ); Wed, 9 Jul 2014 12:26:29 -0400 In-Reply-To: <1403785327-1357-2-git-send-email-matthias.lange@kernkonzept.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 26/06/2014 14:22, Matthias Lange ha scritto: > Linux' AMD MCE code tries to read from the MC4_MISC1 (0xc0000408) MSR. Because > this read is not virtualized within KVM, a GPE is injected into the guest. > This patch handles guest reads from MC4_MISC and returns 0 to the guest. > > Signed-off-by: Matthias Lange > --- > arch/x86/kvm/x86.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 24d70d4..d5a305b 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -2530,6 +2530,9 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata) > return 1; > data = vcpu->arch.osvw.status; > break; > + case 0xc0000408: /* MC4_MISC1 */ > + data = 0; > + break; > default: > if (kvm_pmu_msr(vcpu, msr)) > return kvm_pmu_get_msr(vcpu, msr, pdata); > Why don't you have to do the same with MC4_MISC0? Is your kernel compiled with or without CONFIG_PARAVIRT? Paravirt does .read_msr = native_read_msr_safe, .write_msr = native_write_msr_safe, so you shouldn't get these #GP exceptions. Paolo