]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: x86/mmu: Hard code GFP flags for TDP MMU eager split allocations
authorDavid Matlack <dmatlack@google.com>
Tue, 11 Jun 2024 22:05:10 +0000 (15:05 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 14 Jun 2024 16:23:40 +0000 (09:23 -0700)
Now that the GFP_NOWAIT case is gone, hard code GFP_KERNEL_ACCOUNT when
allocating shadow pages during eager page splitting in the TDP MMU.
Opportunistically replace use of __GFP_ZERO with allocations that zero
to improve readability.

No functional change intended.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: David Matlack <dmatlack@google.com>
Link: https://lore.kernel.org/r/20240611220512.2426439-3-dmatlack@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/mmu/tdp_mmu.c

index e7a5d0147141b0a17c92bbb5a2731c769ec95911..20ee1bc64f3c2deb7124e9a060e300542f6e6301 100644 (file)
@@ -1339,17 +1339,15 @@ bool kvm_tdp_mmu_wrprot_slot(struct kvm *kvm,
        return spte_set;
 }
 
-static struct kvm_mmu_page *__tdp_mmu_alloc_sp_for_split(gfp_t gfp)
+static struct kvm_mmu_page *__tdp_mmu_alloc_sp_for_split(void)
 {
        struct kvm_mmu_page *sp;
 
-       gfp |= __GFP_ZERO;
-
-       sp = kmem_cache_alloc(mmu_page_header_cache, gfp);
+       sp = kmem_cache_zalloc(mmu_page_header_cache, GFP_KERNEL_ACCOUNT);
        if (!sp)
                return NULL;
 
-       sp->spt = (void *)__get_free_page(gfp);
+       sp->spt = (void *)get_zeroed_page(GFP_KERNEL_ACCOUNT);
        if (!sp->spt) {
                kmem_cache_free(mmu_page_header_cache, sp);
                return NULL;
@@ -1374,7 +1372,7 @@ static struct kvm_mmu_page *tdp_mmu_alloc_sp_for_split(struct kvm *kvm,
                write_unlock(&kvm->mmu_lock);
 
        iter->yielded = true;
-       sp = __tdp_mmu_alloc_sp_for_split(GFP_KERNEL_ACCOUNT);
+       sp = __tdp_mmu_alloc_sp_for_split();
 
        if (shared)
                read_lock(&kvm->mmu_lock);