[PATCH] KVM: x86/mmu: Don't zero-allocate page table used for splitting a hugepage

Sean Christopherson posted 1 patch 1 month, 2 weeks ago
arch/x86/kvm/mmu/tdp_mmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] KVM: x86/mmu: Don't zero-allocate page table used for splitting a hugepage
Posted by Sean Christopherson 1 month, 2 weeks ago
When splitting hugepages in the TDP MMU, don't zero the new page table on
allocation since tdp_mmu_split_huge_page() is guaranteed to write every
entry and thus every byte.

Unless someone peeks at the memory between allocating the page table and
writing the child SPTEs, no functional change intended.

Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: Kai Huang <kai.huang@intel.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/mmu/tdp_mmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c
index 9c26038f6b77..7b1102d26f9c 100644
--- a/arch/x86/kvm/mmu/tdp_mmu.c
+++ b/arch/x86/kvm/mmu/tdp_mmu.c
@@ -1507,7 +1507,7 @@ static struct kvm_mmu_page *tdp_mmu_alloc_sp_for_split(void)
 	if (!sp)
 		return NULL;
 
-	sp->spt = (void *)get_zeroed_page(GFP_KERNEL_ACCOUNT);
+	sp->spt = (void *)__get_free_page(GFP_KERNEL_ACCOUNT);
 	if (!sp->spt) {
 		kmem_cache_free(mmu_page_header_cache, sp);
 		return NULL;

base-commit: 183bb0ce8c77b0fd1fb25874112bc8751a461e49
-- 
2.53.0.345.g96ddfc5eaa-goog
Re: [PATCH] KVM: x86/mmu: Don't zero-allocate page table used for splitting a hugepage
Posted by Sean Christopherson 1 month ago
On Wed, 18 Feb 2026 13:08:20 -0800, Sean Christopherson wrote:
> When splitting hugepages in the TDP MMU, don't zero the new page table on
> allocation since tdp_mmu_split_huge_page() is guaranteed to write every
> entry and thus every byte.
> 
> Unless someone peeks at the memory between allocating the page table and
> writing the child SPTEs, no functional change intended.
> 
> [...]

Applied to kvm-x86 mmu, thanks!

[1/1] KVM: x86/mmu: Don't zero-allocate page table used for splitting a hugepage
      https://github.com/kvm-x86/linux/commit/ecb806293213

--
https://github.com/kvm-x86/linux/tree/next
Re: [PATCH] KVM: x86/mmu: Don't zero-allocate page table used for splitting a hugepage
Posted by Huang, Kai 1 month, 2 weeks ago
On Wed, 2026-02-18 at 13:08 -0800, Sean Christopherson wrote:
> When splitting hugepages in the TDP MMU, don't zero the new page table on
> allocation since tdp_mmu_split_huge_page() is guaranteed to write every
> entry and thus every byte.
> 
> Unless someone peeks at the memory between allocating the page table and
> writing the child SPTEs, no functional change intended.
> 
> Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
> Cc: Kai Huang <kai.huang@intel.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> 

Reviewed-by: Kai Huang <kai.huang@intel.com>
Re: [PATCH] KVM: x86/mmu: Don't zero-allocate page table used for splitting a hugepage
Posted by Edgecombe, Rick P 1 month, 2 weeks ago
On Wed, 2026-02-18 at 13:08 -0800, Sean Christopherson wrote:
> When splitting hugepages in the TDP MMU, don't zero the new page table on
> allocation since tdp_mmu_split_huge_page() is guaranteed to write every
> entry and thus every byte.
> 
> Unless someone peeks at the memory between allocating the page table and
> writing the child SPTEs
> 

Didn't see any way for this to happen.

> , no functional change intended.
> 
> Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
> Cc: Kai Huang <kai.huang@intel.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---

Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>