On Wed, Mar 17, 2010 at 10:48:23PM +0100, Alexander Graf wrote: > > On 17.03.2010, at 22:42, Eduardo Habkost wrote: > > > On Wed, Mar 17, 2010 at 07:17:32PM +0100, Alexander Graf wrote: > >> Eduardo Habkost wrote: > >>> svm_vcpu_reset() was not properly resetting the contents of the guest-visible > >>> cr0 register, causing the following issue: > >>> https://bugzilla.redhat.com/show_bug.cgi?id=525699 > >>> > >>> Without resetting cr0 properly, the vcpu was running the SIPI bootstrap routine > >>> with paging enabled, making the vcpu get a pagefault exception while trying to > >>> run it. > >>> > >>> Instead of setting vmcb->save.cr0 directly, the new code just resets > >>> kvm->arch.cr0 and calls kvm_set_cr0(). The bits that were set/cleared on > >>> vmcb->save.cr0 (PG, WP, !CD, !NW) will be set properly by svm_set_cr0(). > >>> > >>> kvm_set_cr0() is used instead of calling svm_set_cr0() directly to make sure > >>> kvm_mmu_reset_context() is called to reset the mmu to nonpaging mode. > >>> > >>> Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> > >>> > >> > >> Should this go into -stable? > > > > I think so. The patch is from October, was -stable branched before that? > > If I read the diff log correctly 2.6.32 kvm development was branched > off end of July 2009. The important question is if this patch fixes a > regression introduced by some speedup magic. I have just checked git history, and it looks like this is not a regression. Before this patch, vcpu->cr0 (the guest-visible cr0 value) was never reset on vcpu reset, but only vcpu->svm->vmcb->save.cr0 (the actual cr0 value used by the CPU). -- Eduardo -- 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