Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1356598
| From | Lan Tianyu <tianyu.lan@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 4/7] KVM/x86: Call smp_wmb() before increasing tlbs_dirty |
| Date | 2016-03-13 04:30 +0100 |
| Message-ID | <rc4T7-830-9@gated-at.bofh.it> (permalink) |
| References | <rc4T7-830-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Update spte before increasing tlbs_dirty to make sure no tlb flush
in lost after spte is zapped. This pairs with the barrier in the
kvm_flush_remote_tlbs().
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
---
arch/x86/kvm/paging_tmpl.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index e159a81..d34475e 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -949,6 +949,12 @@ static int FNAME(sync_page)(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
return 0;
if (FNAME(prefetch_invalid_gpte)(vcpu, sp, &sp->spt[i], gpte)) {
+ /*
+ * Update spte before increasing tlbs_dirty to make sure
+ * no tlb flush in lost after spte is zapped, see the
+ * comments in kvm_flush_remote_tlbs().
+ */
+ smp_wmb();
vcpu->kvm->tlbs_dirty++;
continue;
}
@@ -964,6 +970,11 @@ static int FNAME(sync_page)(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
if (gfn != sp->gfns[i]) {
drop_spte(vcpu->kvm, &sp->spt[i]);
+ /*
+ * The same as above where we are doing
+ * prefetch_invalid_gpte().
+ */
+ smp_wmb();
vcpu->kvm->tlbs_dirty++;
continue;
}
--
1.8.4.rc0.1.g8f6a3e5.dirty
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/7] KVM/X86/PPC: Clear up kvm mmu memory barriers and update related comments Lan Tianyu <tianyu.lan@intel.com> - 2016-03-13 04:30 +0100 [PATCH 4/7] KVM/x86: Call smp_wmb() before increasing tlbs_dirty Lan Tianyu <tianyu.lan@intel.com> - 2016-03-13 04:30 +0100 [PATCH 7/7] KVM/PPC: update the comment of memory barrier in the kvmppc_prepare_to_enter() Lan Tianyu <tianyu.lan@intel.com> - 2016-03-13 04:30 +0100 [PATCH 5/7] KVM: Replace smp_mb() with smp_load_acquire() in the kvm_flush_remote_tlbs() Lan Tianyu <tianyu.lan@intel.com> - 2016-03-13 04:30 +0100 [PATCH 6/7] KVM/x86: update the comment of memory barrier in the vcpu_enter_guest() Lan Tianyu <tianyu.lan@intel.com> - 2016-03-13 04:30 +0100 Re: [PATCH 0/7] KVM/X86/PPC: Clear up kvm mmu memory barriers and update related comments Paolo Bonzini <pbonzini@redhat.com> - 2016-03-14 14:10 +0100
csiph-web