On Wed, Jan 06, 2010 at 04:17:42PM +0800, Huang Ying wrote: > On Wed, 2010-01-06 at 16:03 +0800, Avi Kivity wrote: > > On 01/06/2010 09:05 AM, Huang Ying wrote: > > > @@ -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? > > > > > > > It is, but it is also called from many other places, which could cause > > this msr to be zeroed. > > > > A better solution is to allocate it a field in CPUState, load and save > > it in kvm_arch_*_regs, and zero it during reset. > > Yes. You are right. I will fix this. BTW, the MCE MSRs are not being migrated. Perhaps you'd like to fix that while at it. -- 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