kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Hou Wenlong" <houwenlong.hwl@antgroup.com>
To: kvm@vger.kernel.org
Cc: David Matlack <dmatlack@google.com>
Subject: [PATCH v2 0/6] KVM: x86/mmu: Fix wrong usages of range-based tlb flushing
Date: Wed, 24 Aug 2022 17:29:17 +0800	[thread overview]
Message-ID: <cover.1661331396.git.houwenlong.hwl@antgroup.com> (raw)

Commit c3134ce240eed
("KVM: Replace old tlb flush function with new one to flush a specified range.")
replaces old tlb flush function with kvm_flush_remote_tlbs_with_address()
to do tlb flushing. However, the gfn range of tlb flushing is wrong in
some cases. E.g., when a spte is dropped, the start gfn of tlb flushing
should be the gfn of spte not the base gfn of SP which contains the spte.
Although, as Paolo said, Hyper-V may treat a 1-page flush the same if the
address points to a huge page, and no fixes are reported so far. So it seems
that it works well for Hyper-V. But it would be better to use the
correct size for huge page. So this patchset would fix them and introduce
some helper functions as David suggested to make the code clear.

Changed from v1:
- Align down gfn in kvm_set_pte_rmapp() instead of change iterator->gfn
  in rmap_walk_init_level() in Patch 2.
- Introduce some helper functions for common operations as David
  suggested.

v1: https://lore.kernel.org/kvm/cover.1656039275.git.houwenlong.hwl@antgroup.com

Hou Wenlong (6):
  KVM: x86/mmu: Fix wrong gfn range of tlb flushing in
    validate_direct_spte()
  KVM: x86/mmu: Fix wrong gfn range of tlb flushing in
    kvm_set_pte_rmapp()
  KVM: x86/mmu: Reduce gfn range of tlb flushing in
    tdp_mmu_map_handle_target_level()
  KVM: x86/mmu: Fix wrong start gfn of tlb flushing with range
  KVM: x86/mmu: Introduce helper function to do range-based flushing for
    given page
  KVM: x86/mmu: Use 1 as the size of gfn range for tlb flushing in
    FNAME(invlpg)()

 arch/x86/kvm/mmu/mmu.c          | 35 +++++++++++++++++++++++----------
 arch/x86/kvm/mmu/mmu_internal.h | 10 ++++++++++
 arch/x86/kvm/mmu/paging_tmpl.h  |  4 ++--
 arch/x86/kvm/mmu/tdp_mmu.c      |  6 ++----
 4 files changed, 39 insertions(+), 16 deletions(-)

--
2.31.1


             reply	other threads:[~2022-08-24  9:29 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-24  9:29 Hou Wenlong [this message]
2022-08-24  9:29 ` [PATCH v2 1/6] KVM: x86/mmu: Fix wrong gfn range of tlb flushing in validate_direct_spte() Hou Wenlong
2022-09-07 17:43   ` David Matlack
2022-09-13 12:07     ` Hou Wenlong
2022-09-15 11:47       ` Liam Ni
2022-09-16  2:49         ` Hou Wenlong
2022-09-20 18:08         ` David Matlack
2022-09-18 13:11   ` Robert Hoo
2022-09-20 18:32     ` David Matlack
2022-09-20 18:44       ` David Matlack
2022-09-27  2:54         ` Robert Hoo
2022-09-27 16:44           ` Sean Christopherson
2022-08-24  9:29 ` [PATCH v2 2/6] KVM: x86/mmu: Fix wrong gfn range of tlb flushing in kvm_set_pte_rmapp() Hou Wenlong
2022-09-07 17:50   ` David Matlack
2022-08-24  9:29 ` [PATCH v2 3/6] KVM: x86/mmu: Reduce gfn range of tlb flushing in tdp_mmu_map_handle_target_level() Hou Wenlong
2022-09-07 17:58   ` David Matlack
2022-08-24  9:29 ` [PATCH v2 4/6] KVM: x86/mmu: Fix wrong start gfn of tlb flushing with range Hou Wenlong
2022-09-07 18:25   ` David Matlack
2022-09-13 12:50     ` Hou Wenlong
2022-08-24  9:29 ` [PATCH v2 5/6] KVM: x86/mmu: Introduce helper function to do range-based flushing for given page Hou Wenlong
2022-08-24  9:29 ` [PATCH v2 6/6] KVM: x86/mmu: Use 1 as the size of gfn range for tlb flushing in FNAME(invlpg)() Hou Wenlong
2022-09-07 17:40   ` David Matlack
2022-09-13 12:58     ` Hou Wenlong
2022-09-13 13:57       ` David Matlack
2022-09-16 19:33         ` Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1661331396.git.houwenlong.hwl@antgroup.com \
    --to=houwenlong.hwl@antgroup.com \
    --cc=dmatlack@google.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).