lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Yt/9EJienmR2i+va@google.com>
Date:   Tue, 26 Jul 2022 14:41:20 +0000
From:   Sean Christopherson <seanjc@...gle.com>
To:     Hao Peng <flyingpenghao@...il.com>
Cc:     pbonzini@...hat.com, kvm@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] kvm: mmu: Simplify judgment conditions

On Tue, Jul 26, 2022, Hao Peng wrote:
> From: Peng Hao <flyingpeng@...cent.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@...cent.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ