Re: [BUGFIX] MCE: Fix bug of IA32_MCG_STATUS after system reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Avi,

On Tue, 2010-01-05 at 18:50 +0800, Avi Kivity wrote:
> 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<ying.huang@xxxxxxxxx>
> > ---
> >   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?

I found kvm_arch_load_regs() is called by kvm_arch_cpu_reset(), which is
called by qemu_kvm_system_reset(). It is not in cpu reset path?

Best Regards,
Huang Ying


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux