From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [BUGFIX] MCE: Fix bug of IA32_MCG_STATUS after system reset Date: Tue, 05 Jan 2010 12:50:16 +0200 Message-ID: <4B431968.9030304@redhat.com> References: <1262680448.31401.228.camel@yhuang-dev.sh.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Anthony Liguori , Andi Kleen , kvm@vger.kernel.org To: Huang Ying Return-path: Received: from mx1.redhat.com ([209.132.183.28]:21665 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753318Ab0AEKuV (ORCPT ); Tue, 5 Jan 2010 05:50:21 -0500 In-Reply-To: <1262680448.31401.228.camel@yhuang-dev.sh.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/05/2010 10:34 AM, Huang Ying wrote: > Now, if we inject a fatal MCE into guest OS, for example Linux, Linux > will go panic and then reboot. But if we inject another MCE now, > system will reset directly instead of go panic firstly, because > MCG_STATUS.MCIP is set to 1 and not cleared after reboot. This is does > not follow the behavior in real hardware. > > This patch fixes this via set IA32_MCG_STATUS to 0 during system reset. > > Signed-off-by: Huang Ying > --- > qemu-kvm-x86.c | 1 + > 1 file changed, 1 insertion(+) > > --- a/qemu-kvm-x86.c > +++ b/qemu-kvm-x86.c > @@ -1015,6 +1015,7 @@ void kvm_arch_load_regs(CPUState *env) > #endif > set_msr_entry(&msrs[n++], MSR_KVM_SYSTEM_TIME, env->system_time_msr); > set_msr_entry(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr); > + set_msr_entry(&msrs[n++], MSR_MCG_STATUS, 0); > > Not sure why you reset this in kvm_arch_load_regs(). Shouldn't this be in the cpu reset code? -- error compiling committee.c: too many arguments to function