On Monday 13 July 2009 20:23:58 Avi Kivity wrote: > On 07/09/2009 12:00 PM, Sheng Yang wrote: > > set_cr3() should already cover the TLB flushing. > > > > Signed-off-by: Sheng Yang<sheng@xxxxxxxxxxxxxxx> > > --- > > arch/x86/kvm/mmu.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > > index 231d880..501c11e 100644 > > --- a/arch/x86/kvm/mmu.c > > +++ b/arch/x86/kvm/mmu.c > > @@ -2349,8 +2349,8 @@ int kvm_mmu_load(struct kvm_vcpu *vcpu) > > spin_unlock(&vcpu->kvm->mmu_lock); > > if (r) > > goto out; > > + /* set_cr3() should ensure TLB has been flushed */ > > kvm_x86_ops->set_cr3(vcpu, vcpu->arch.mmu.root_hpa); > > - kvm_mmu_flush_tlb(vcpu); > > out: > > return r; > > } > > Maybe we should drop the flushes in vmx/svm instead? That's what I unsure about... mmu_load() with flushes sounds reasonable, set_cr3() with flushes sounds a little more reasonable to me because I think set_cr3() may shouldn't depends on caller to flush, which seems more direct. -- regards Yang, Sheng -- 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