* [RFC 01/19] KVM: x86/mmu: Fix TLB flush range when handling disconnected pt [not found] <20211110223010.1392399-1-bgardon@google.com> @ 2021-11-10 22:29 ` Ben Gardon 2021-11-11 17:44 ` David Matlack 0 siblings, 1 reply; 2+ messages in thread From: Ben Gardon @ 2021-11-10 22:29 UTC (permalink / raw) To: linux-kernel, kvm Cc: Paolo Bonzini, Peter Xu, Sean Christopherson, Peter Shier, David Matlack, Mingwei Zhang, Yulei Zhang, Wanpeng Li, Xiao Guangrong, Kai Huang, Keqian Zhu, David Hildenbrand, Ben Gardon, stable When recursively clearing out disconnected pts, the range based TLB flush in handle_removed_tdp_mmu_page uses the wrong starting GFN, resulting in the flush mostly missing the affected range. Fix this by using base_gfn for the flush. Fixes: a066e61f13cf ("KVM: x86/mmu: Factor out handling of removed page tables") CC: stable@vger.kernel.org Signed-off-by: Ben Gardon <bgardon@google.com> --- arch/x86/kvm/mmu/tdp_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c index 7c5dd83e52de..866c2b191e1e 100644 --- a/arch/x86/kvm/mmu/tdp_mmu.c +++ b/arch/x86/kvm/mmu/tdp_mmu.c @@ -374,7 +374,7 @@ static void handle_removed_tdp_mmu_page(struct kvm *kvm, tdp_ptep_t pt, shared); } - kvm_flush_remote_tlbs_with_address(kvm, gfn, + kvm_flush_remote_tlbs_with_address(kvm, base_gfn, KVM_PAGES_PER_HPAGE(level + 1)); call_rcu(&sp->rcu_head, tdp_mmu_free_sp_rcu_callback); -- 2.34.0.rc0.344.g81b53c2807-goog ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [RFC 01/19] KVM: x86/mmu: Fix TLB flush range when handling disconnected pt 2021-11-10 22:29 ` [RFC 01/19] KVM: x86/mmu: Fix TLB flush range when handling disconnected pt Ben Gardon @ 2021-11-11 17:44 ` David Matlack 0 siblings, 0 replies; 2+ messages in thread From: David Matlack @ 2021-11-11 17:44 UTC (permalink / raw) To: Ben Gardon Cc: linux-kernel, kvm, Paolo Bonzini, Peter Xu, Sean Christopherson, Peter Shier, Mingwei Zhang, Yulei Zhang, Wanpeng Li, Xiao Guangrong, Kai Huang, Keqian Zhu, David Hildenbrand, stable On Wed, Nov 10, 2021 at 02:29:52PM -0800, Ben Gardon wrote: > When recursively clearing out disconnected pts, the range based TLB > flush in handle_removed_tdp_mmu_page uses the wrong starting GFN, > resulting in the flush mostly missing the affected range. Fix this by > using base_gfn for the flush. > > Fixes: a066e61f13cf ("KVM: x86/mmu: Factor out handling of removed page tables") > CC: stable@vger.kernel.org > > Signed-off-by: Ben Gardon <bgardon@google.com> > --- > arch/x86/kvm/mmu/tdp_mmu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c > index 7c5dd83e52de..866c2b191e1e 100644 > --- a/arch/x86/kvm/mmu/tdp_mmu.c > +++ b/arch/x86/kvm/mmu/tdp_mmu.c > @@ -374,7 +374,7 @@ static void handle_removed_tdp_mmu_page(struct kvm *kvm, tdp_ptep_t pt, > shared); > } > > - kvm_flush_remote_tlbs_with_address(kvm, gfn, > + kvm_flush_remote_tlbs_with_address(kvm, base_gfn, Suggest pulling the definition of gfn into the for loop as well (along with sptep and old_child_spte for that matter) so that referencing it here isn't even possible. > KVM_PAGES_PER_HPAGE(level + 1)); > > call_rcu(&sp->rcu_head, tdp_mmu_free_sp_rcu_callback); > -- > 2.34.0.rc0.344.g81b53c2807-goog > ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-11-11 17:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20211110223010.1392399-1-bgardon@google.com>
2021-11-10 22:29 ` [RFC 01/19] KVM: x86/mmu: Fix TLB flush range when handling disconnected pt Ben Gardon
2021-11-11 17:44 ` David Matlack
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox