FAILED: patch "[PATCH] KVM: arm/arm64: Skip updating PTE entry if no change" failed to apply to 3.18-stable tree
[email protected]
maintainerThe patch below does not apply to the 3.18-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 {