SMP reboot failed with various phenomena such as user level
"unhandled vm exit: 0x80000021 ..." when rebooting SMP RHEL5U
or "execption 8 (0)..." when rebooting XP etc. The reason is that
we are not correctly reset VCPU. create_vcpu does some initialization
work which should be part of reset job. So reset_vcpu can't do full
VCPU reset and thus cause AP reboot failure.
The best approach is to re-org above 2 functions to make it
clear that everything will be re-initialized in vcpu_reset. create_vcpu
probably only allocate memory and do initialization only for those
communicating with user level data structure. while leave others
including MMU reset to vcpu_reset. For now, let us
use this small patch to fix current issue: GUEST_CR3 in VMCS is
not correctly reseted due to enter_rmode issue.
With this I get XPSP2 acpi SMP guest reboot successfully
and also SMP Linux RHEL5U.
thanks, eddie
commit 60da97b6de0324a5be1c958b749b33b77cd2b68f
Author: root <[EMAIL PROTECTED](none)>
Date: Wed Oct 10 14:09:19 2007 +0800
Reset a SMP guest will force AP enter
real mode (RESET) probably from paging enabled
protect mode. While current enter_rmode can
only handle mode switch from nonpaging mode
to real mode which leads to SMP reboot failure.
Signed-off-by: Yaozu (Eddie) Dong <[EMAIL PROTECTED]>
Signed-off-by: Qing He <[EMAIL PROTECTED]>
diff --git a/drivers/kvm/mmu.c b/drivers/kvm/mmu.c
index 382bd6a..ece0aa4 100644
--- a/drivers/kvm/mmu.c
+++ b/drivers/kvm/mmu.c
@@ -1142,6 +1142,7 @@ int kvm_mmu_reset_context(struct kvm_vcpu *vcpu)
destroy_kvm_mmu(vcpu);
return init_kvm_mmu(vcpu);
}
+EXPORT_SYMBOL_GPL(kvm_mmu_reset_context);
int kvm_mmu_load(struct kvm_vcpu *vcpu)
{
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index 0537695..2d75599 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -1156,6 +1156,7 @@ static void enter_rmode(struct kvm_vcpu *vcpu)
fix_rmode_seg(VCPU_SREG_GS, &vcpu->rmode.gs);
fix_rmode_seg(VCPU_SREG_FS, &vcpu->rmode.fs);
+ kvm_mmu_reset_context(vcpu);
init_rmode_tss(vcpu->kvm);
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel