2022-04-07 13:32:27

by 罗飞

[permalink] [raw]
Subject: [PATCH] KVM: x86/mmu: remove unnecessary kvm_shadow_root_allocated() check

When we reach here, the return value of kvm_shadow_root_allocated()
has already been checked to false under kvm->slots_arch_lock.
So remove the unnecessary recheck.

Signed-off-by: luofei <[email protected]>
---
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 8f19ea752704..1978ee527298 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -3394,7 +3394,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


2022-04-08 13:21:41

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH] KVM: x86/mmu: remove unnecessary kvm_shadow_root_allocated() check

On 4/7/22 03:40, luofei wrote:
> When we reach here, the return value of kvm_shadow_root_allocated()
> has already been checked to false under kvm->slots_arch_lock.
> So remove the unnecessary recheck.

It's a little less clear t check !is_tdp_mmu_enabled().

That said, this is only done once, so perhaps it's better/easier to just
remove the if completely.

Paolo


> Signed-off-by: luofei <[email protected]>
> ---
> 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 8f19ea752704..1978ee527298 100644
> --- a/arch/x86/kvm/mmu/mmu.c
> +++ b/arch/x86/kvm/mmu/mmu.c
> @@ -3394,7 +3394,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;
>