summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/mmu.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-06-04 17:42:24 +0200
committerAvi Kivity <avi@qumranet.com>2008-06-06 20:32:20 +0200
commit8d2d73b9a5c35f2c6abf427afba7888cfc4cc65d (patch)
tree488c265654adc025012815473a38e61e0c343505 /arch/x86/kvm/mmu.c
parentKVM: VMX: Clear CR4.VMXE in hardware_disable (diff)
downloadlinux-8d2d73b9a5c35f2c6abf427afba7888cfc4cc65d.tar.xz
linux-8d2d73b9a5c35f2c6abf427afba7888cfc4cc65d.zip
KVM: MMU: reschedule during shadow teardown
Shadows for large guests can take a long time to tear down, so reschedule occasionally to avoid softlockup warnings. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r--arch/x86/kvm/mmu.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 7246b60afb96..c2fd6a4a58c3 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1858,6 +1858,7 @@ static void free_mmu_pages(struct kvm_vcpu *vcpu)
sp = container_of(vcpu->kvm->arch.active_mmu_pages.next,
struct kvm_mmu_page, link);
kvm_mmu_zap_page(vcpu->kvm, sp);
+ cond_resched();
}
free_page((unsigned long)vcpu->arch.mmu.pae_root);
}