On Thu, 9 Mar 2017 13:49:06 +0100 Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > +struct kvm_x86_mce { > > + __u64 status; > > + __u64 addr; > > + __u64 misc; > > + __u64 mcg_status; > > + __u8 bank; > > + __u8 pad1[7]; > > + __u64 pad2[3]; > > +}; > > + > > +If the MCE being reported is an uncorrected error, KVM will > > +inject it as a MCE exception into the guest (if an MCE > > +is still in progress, a triple fault is be injected). > > If the guest MCG_STATUS register reports that an MCE is in progress, KVM > causes an KVM_EXIT_SHUTDOWN vmexit. Oh, that's correct. But it only happens for uncorrected errors. So, My new paragraph would be: If the MCE being reported is an uncorrected error, KVM will inject it as an MCE exception into the guest. If the guest MCG_STATUS register reports taht an MCE is in progress, KVM causes an KVM_EXIT_SHUTDOWN vmexit. Otherwise, if the MCE is an corrected error, KVM will just store it in the corresponding bank (provided this bank is not holding a previously reported uncorrected error).