Re: [PATCH v4 12/16] x86/virt/tdx: Add helpers to allow for pre-allocating pages

From: Binbin Wu

Date: Wed Nov 26 2025 - 00:21:55 EST




On 11/26/2025 11:40 AM, Binbin Wu wrote:
index 260bb0e6eb44..61a058a8f159 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -1644,23 +1644,34 @@ static int tdx_mem_page_add(struct kvm *kvm, gfn_t gfn, enum pg_level level,
    static void *tdx_alloc_external_fault_cache(struct kvm_vcpu *vcpu)
  {
-    struct vcpu_tdx *tdx = to_tdx(vcpu);
+    struct page *page = get_tdx_prealloc_page(&to_tdx(vcpu)->prealloc);
  -    return kvm_mmu_memory_cache_alloc(&tdx->mmu_external_spt_cache);
+    if (WARN_ON_ONCE(!page))
+        return (void *)__get_free_page(GFP_ATOMIC | __GFP_ACCOUNT);

kvm_mmu_memory_cache_alloc() calls BUG_ON() if the atomic allocation failed.
Do we want to follow?


Please ignore this one.