From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hidetoshi Seto Subject: Re: [PATCH] Fix SRAO/SRAR MCE injecting on guest without MCG_SER_P Date: Fri, 08 Oct 2010 17:31:38 +0900 Message-ID: <4CAED6EA.2090101@jp.fujitsu.com> References: <1286526314.7768.97.camel@yhuang-dev> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Avi Kivity , Marcelo Tosatti , "kvm@vger.kernel.org" , Andi Kleen , Dean Nelson To: Huang Ying Return-path: Received: from fgwmail6.fujitsu.co.jp ([192.51.44.36]:51348 "EHLO fgwmail6.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752769Ab0JHIcC (ORCPT ); Fri, 8 Oct 2010 04:32:02 -0400 Received: from m4.gw.fujitsu.co.jp ([10.0.50.74]) by fgwmail6.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id o988VxM4005083 for (envelope-from seto.hidetoshi@jp.fujitsu.com); Fri, 8 Oct 2010 17:31:59 +0900 Received: from smail (m4 [127.0.0.1]) by outgoing.m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 59B9F45DE7C for ; Fri, 8 Oct 2010 17:31:59 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (s4.gw.fujitsu.co.jp [10.0.50.94]) by m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 3348A45DE70 for ; Fri, 8 Oct 2010 17:31:59 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 07CB6EF8008 for ; Fri, 8 Oct 2010 17:31:59 +0900 (JST) Received: from m105.s.css.fujitsu.com (m105.s.css.fujitsu.com [10.249.87.105]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id AD893EF8003 for ; Fri, 8 Oct 2010 17:31:58 +0900 (JST) In-Reply-To: <1286526314.7768.97.camel@yhuang-dev> Sender: kvm-owner@vger.kernel.org List-ID: (2010/10/08 17:25), Huang Ying wrote: > On real machine, if MCG_SER_P in MSR_MCG_CAP is not set, SRAO/SRAR MCE > should not be raised by hardware. This patch makes QEMU-KVM to follow > the same rule. > > Reported-by: Hidetoshi Seto > Signed-off-by: Huang Ying > --- > qemu-kvm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > --- a/qemu-kvm.c > +++ b/qemu-kvm.c > @@ -1134,7 +1134,7 @@ static void sigbus_handler(int n, struct > void *ctx) > { > #if defined(KVM_CAP_MCE) && defined(TARGET_I386) > - if (first_cpu->mcg_cap && siginfo->ssi_addr > + if ((first_cpu->mcg_cap & MCG_SER_P) && siginfo->ssi_addr > && siginfo->ssi_code == BUS_MCEERR_AO) { > uint64_t status; > void *vaddr; > @@ -1324,7 +1324,7 @@ static void kvm_on_sigbus(CPUState *env, > unsigned long paddr; > int r; > > - if (env->mcg_cap && siginfo->si_addr > + if ((env->mcg_cap & MCG_SER_P) && siginfo->si_addr > && (siginfo->si_code == BUS_MCEERR_AR > || siginfo->si_code == BUS_MCEERR_AO)) { > if (siginfo->si_code == BUS_MCEERR_AR) { > @@ -1356,7 +1356,7 @@ static void kvm_on_sigbus(CPUState *env, > if (do_qemu_ram_addr_from_host(vaddr, &ram_addr) || > !kvm_physical_memory_addr_from_ram(kvm_state, ram_addr, (target_phys_addr_t *)&paddr)) { > fprintf(stderr, "Hardware memory error for memory used by " > - "QEMU itself instaed of guest system!\n"); > + "QEMU itself instead of guest system!\n"); > /* Hope we are lucky for AO MCE */ > if (siginfo->si_code == BUS_MCEERR_AO) { > return; Reviewed-by: Hidetoshi Seto Thanks, H.Seto