Held Bernhard wrote:
Does the attached work for you?

Avi, do you have thoughts on how to proceed with pvmmu? Using hypercalls
instead of faults can still be beneficial (for the first write before
page goes out of sync, or for non-leaf tables which currently don't go
oos). But at the current state pvmmu should be slower in most loads.
Perhaps disable it?

KVM: MMU: sync root on paravirt TLB flush

The pvmmu TLB flush handler should request a root sync, similarly to
a native read-write CR3.

Signed-off-by: Marcelo Tosatti <[EMAIL PROTECTED]>

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 79cb4a9..7e70e97 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2747,6 +2747,7 @@ static int kvm_pv_mmu_write(struct kvm_vcpu *vcpu,
 static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu)
 {
        kvm_x86_ops->tlb_flush(vcpu);
+       set_bit(KVM_REQ_MMU_SYNC, &vcpu->requests);
        return 1;
 }
This patch works for me (kvm-77, 2.6.27 host and guest)!

kvm-75 works fine, but kvm-76 and kvm-77 (all unpatched) show lot's of
segfaults in the guest (2.6.26.5 or 2.6.27, x86_64 on host and guest).

Thanks for the patch!

HTH,
Bernhard
Hi,

Using this patch on a vanilla 2.6.27 kernel, I get this when I try to compile it:

arch/x86/kvm/mmu.c: In function ‘kvm_pv_mmu_flush_tlb’:
arch/x86/kvm/mmu.c:2241: error: ‘KVM_REQ_MMU_SYNC’ undeclared (first use in this function) arch/x86/kvm/mmu.c:2241: error: (Each undeclared identifier is reported only once
arch/x86/kvm/mmu.c:2241: error: for each function it appears in.)
make[2]: *** [arch/x86/kvm/mmu.o] Error 1

It was fine with kvm-75 but I still not able to start my ubuntu 2.6.27 guest with kvm 75 qnd kvm 76.
host : vanilla 2.6.27 x86_64
guest : ubuntu 8.10 (2.6.27)

I must be missing a patch somewhere...

Xavier
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to