FAILED: patch "[PATCH] KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From b6b80c78af838bef17501416d5d383fedab0010a Mon Sep 17 00:00:00 2001
From: Sean Christopherson <[email protected]>
Date: Thu, 13 Jun 2019 10:22:23 -0700
Subject: [PATCH] KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit
NPT
SVM's Nested Page Tables (NPT) reuses x86 paging for the host-controlled page walk. For 32-bit KVM, this means PAE paging is used even when TDP is enabled, i.e. the PAE root array needs to be allocated.
arch/x86/kvm/mmu.c +10 -6
@@ -5602,14 +5602,18 @@ static int alloc_mmu_pages(struct kvm_vcpu *vcpu)struct page *page;int i; -if (tdp_enabled) -return 0 ; -/* -* When emulating 32-bit mode, cr3 is only 32 bits even on x86_64. -* Therefore we need to allocate shadow page tables in the first -* 4GB of memory, which happens to fit the DMA32 zone. +* When using PAE paging, the four PDPTEs are treated as 'root' pages, +* while the PDP table is a per-vCPU construct that's allocated at MMU +* creation. When emulating 32-bit mode, cr3 is only 32 bits even on +* x86_64. Therefore we need to allocate the PDP table in the first +* 4GB of memory, which happens to fit the DMA32 zone. Except for +* SVM's 32-bit NPT support, TDP paging doesn't use PAE paging and can +* skip allocating the PDP table. */ +if (tdp_enabled && kvm_x86_ops->get_tdp_level (vcpu) >PT32E_ROOT_LEVEL ) +return 0 ; + page =alloc_page (GFP_KERNEL_ACCOUNT | __GFP_DMA32);if (!page)return -ENOMEM ;
PATCH 1/1 KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT
Original commit id b6b80c78 ported to stable/linux-4.19.y.
SVM's Nested Page Tables (NPT) reuses x86 paging for the host-controlled page walk. For 32-bit KVM, this means PAE paging is used even when TDP is enabled, i.e. the PAE root array needs to be allocated.
--- arch/x86/kvm/mmu.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
arch/x86/kvm/mmu.c +10 -1
@@ -5386,7 +5386,16 @@ static int alloc_mmu_pages(struct kvm_vcpu *vcpu)struct page *page;int i; -if (tdp_enabled) +/* +* When using PAE paging, the four PDPTEs are treated as 'root' pages, +* while the PDP table is a per-vCPU construct that's allocated at MMU +* creation. When emulating 32-bit mode, cr3 is only 32 bits even on +* x86_64. Therefore we need to allocate the PDP table in the first +* 4GB of memory, which happens to fit the DMA32 zone. Except for +* SVM's 32-bit NPT support, TDP paging doesn't use PAE paging and can +* skip allocating the PDP table. +*/ +if (tdp_enabled && kvm_x86_ops->get_tdp_level (vcpu) >PT32E_ROOT_LEVEL )return 0 ;/*
--
2.20.1
Sasha Levin
maintainerRe: [PATCH] KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT
Quoted 11 lines · Jiri Palecek
Original commit id
b6b80c78ported to stable/linux-4.19.y.SVM's Nested Page Tables (NPT) reuses x86 paging for the host-controlled page walk. For 32-bit KVM, this means PAE paging is used even when TDP is enabled, i.e. the PAE root array needs to be allocated.
Fixes ee6268ba3a68 ("KVM: x86: Skip pae_root shadow allocation if tdp enabled")Reported-by Jiri Palecek <[email protected]>Signed-off-by Sean Christopherson <[email protected]>Signed-off-by Paolo Bonzini <[email protected]>
Could you add your signed-off-by please?
--
Thanks,
Sasha