FAILED: patch "[PATCH] KVM: arm/arm64: Skip updating PTE entry if no change" failed to apply to 4.9-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.9-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 ------------------
Quoted 1 line
From
976d34e2dab10ece5ea8fe7090b7692913f89084Mon Sep 17 00:00:00 2001
From: Punit Agrawal <[email protected]>
Date: Mon, 13 Aug 2018 11:43:51 +0100
Subject: [PATCH] KVM: arm/arm64: Skip updating PTE entry if no change
When there is contention on faulting in a particular page table entry at stage 2, the break-before-make requirement of the architecture can lead to additional refaulting due to TLB invalidation.
Avoid this by skipping a page table update if the new value of the PTE matches the previous value.
virt/kvm/arm/mmu.c +4 -0
@@ -1147,6 +1147,10 @@ static int stage2_set_pte(struct kvm *kvm, struct kvm_mmu_memory_cache *cache,/* Create 2nd stage page table mapping - Level 3 */ old_pte = *pte;if (pte_present (old_pte)) { +/* Skip page table update if there is no change */ +if (pte_val (old_pte) ==pte_val (*new_pte)) +return 0 ; +kvm_set_pte (pte,__pte (0 ));kvm_tlb_flush_vmid_ipa (kvm, addr); }else {
Punit Agrawal
Reviewed-by Suzuki PouloseQuoted 4 lines · <[email protected]> writes:
The patch below does not apply to the 4.9-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]>.
This patch fails to apply for similar reason as to the PMD one I just sent out. Please find the backport patch below.
Thanks,
Punit
-- >8 --
From: Punit Agrawal <[email protected]>
Date: Fri, 10 Aug 2018 20:05:07 +0100
Subject: [PATCH 2/2] KVM: arm/arm64: Skip updating PTE entry if no change
commit 976d34e2dab10ece5ea8fe7090b7692913f89084 upstream
When there is contention on faulting in a particular page table entry at stage 2, the break-before-make requirement of the architecture can lead to additional refaulting due to TLB invalidation.
Avoid this by skipping a page table update if the new value of the PTE matches the previous value.
--- arch/arm/kvm/mmu.c | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm/kvm/mmu.c +4 -0
@@ -978,6 +978,10 @@ static int stage2_set_pte(struct kvm *kvm, struct kvm_mmu_memory_cache *cache,/* Create 2nd stage page table mapping - Level 3 */ old_pte = *pte;if (pte_present (old_pte)) { +/* Skip page table update if there is no change */ +if (pte_val (old_pte) ==pte_val (*new_pte)) +return 0 ; +kvm_set_pte (pte,__pte (0 ));kvm_tlb_flush_vmid_ipa (kvm, addr); }else {
Signature · 1 line
2.18.0