diff mbox series

kvm: mmu: Simplify judgment conditions

Message ID CAPm50aLYb9+wsm3WA8buhC+ePfR6TrGbDR0nMju+bLzf0Tozuw@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series kvm: mmu: Simplify judgment conditions | expand

Commit Message

Hao Peng July 26, 2022, 1:59 a.m. UTC
From: Peng Hao <flyingpeng@tencent.com>

kvm_shadow_root_allocated() has been checked before in
mmu_first_shadow_root_alloc,
and subsequent kvm_memslots_have_rmaps() does not need to check
kvm_shadow_root_allocated() again.

Signed-off-by: Peng Hao <flyingpeng@tencent.com>
---
 arch/x86/kvm/mmu/mmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.27.0

Comments

Sean Christopherson July 26, 2022, 2:41 p.m. UTC | #1
On Tue, Jul 26, 2022, Hao Peng wrote:
> From: Peng Hao <flyingpeng@tencent.com>
> 
> kvm_shadow_root_allocated() has been checked before in
> mmu_first_shadow_root_alloc,
> and subsequent kvm_memslots_have_rmaps() does not need to check
> kvm_shadow_root_allocated() again.

Heh, this has come up before[*].  I agree with Paolo that checking for rmaps is
more intuitive than checking for !TDP MMU.  I'm not sure I agree about dropping
the check entirely though, it just seems like we'll end up back here again, i.e.
someone will inevitably propose optimizing the case where KVM has already allocated
rmaps and gfn_track.

[*] https://lore.kernel.org/all/c31a5f84-6da2-c6a0-c0cd-9f6802c39fc3@redhat.com

> Signed-off-by: Peng Hao <flyingpeng@tencent.com>
> ---
>  arch/x86/kvm/mmu/mmu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> index 52664c3caaab..ecd64c06f839 100644
> --- a/arch/x86/kvm/mmu/mmu.c
> +++ b/arch/x86/kvm/mmu/mmu.c
> @@ -3584,7 +3584,7 @@ static int mmu_first_shadow_root_alloc(struct kvm *kvm)
>          * Check if anything actually needs to be allocated, e.g. all metadata
>          * will be allocated upfront if TDP is disabled.
>          */
> -       if (kvm_memslots_have_rmaps(kvm) &&
> +       if (!is_tdp_mmu_enabled(kvm) &&
>             kvm_page_track_write_tracking_enabled(kvm))
>                 goto out_success;
> 
> --
> 2.27.0
diff mbox series

Patch

diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 52664c3caaab..ecd64c06f839 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -3584,7 +3584,7 @@  static int mmu_first_shadow_root_alloc(struct kvm *kvm)
         * Check if anything actually needs to be allocated, e.g. all metadata
         * will be allocated upfront if TDP is disabled.
         */
-       if (kvm_memslots_have_rmaps(kvm) &&
+       if (!is_tdp_mmu_enabled(kvm) &&
            kvm_page_track_write_tracking_enabled(kvm))
                goto out_success;