Patch "KVM: PPC: Book3S HV nestedv2: Cancel pending DEC exception" has been added to the 6.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    KVM: PPC: Book3S HV nestedv2: Cancel pending DEC exception

to the 6.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kvm-ppc-book3s-hv-nestedv2-cancel-pending-dec-except.patch
and it can be found in the queue-6.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit de21af66569dbd3311a9943b5794124e4a2e1dbb
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxx>
Date:   Mon Apr 15 09:27:29 2024 +0530

    KVM: PPC: Book3S HV nestedv2: Cancel pending DEC exception
    
    [ Upstream commit 7be6ce7043b4cf293c8826a48fd9f56931cef2cf ]
    
    This reverts commit 180c6b072bf3 ("KVM: PPC: Book3S HV nestedv2: Do not
    cancel pending decrementer exception") [1] which prevented canceling a
    pending HDEC exception for nestedv2 KVM guests. It was done to avoid
    overhead of a H_GUEST_GET_STATE hcall to read the 'DEC expiry TB' register
    which was higher compared to handling extra decrementer exceptions.
    
    However recent benchmarks indicate that overhead of not handling 'DECR'
    expiry for Nested KVM Guest(L2) is higher and results in much larger exits
    to Pseries Host(L1) as indicated by the Unixbench-arithoh bench[2]
    
    Metric                | Current upstream    | Revert [1]  | Difference %
    ========================================================================
    arithoh-count (10)    | 3244831634          | 3403089673  | +04.88%
    kvm_hv:kvm_guest_exit | 513558              | 152441      | -70.32%
    probe:kvmppc_gsb_recv | 28060               | 28110       | +00.18%
    
    N=1
    
    As indicated by the data above that reverting [1] results in substantial
    reduction in number of L2->L1 exits with only slight increase in number of
    H_GUEST_GET_STATE hcalls to read the value of 'DEC expiry TB'. This results
    in an overall ~4% improvement of arithoh[2] throughput.
    
    [1] commit 180c6b072bf3 ("KVM: PPC: Book3S HV nestedv2: Do not cancel pending decrementer exception")
    [2] https://github.com/kdlucas/byte-unixbench/
    
    Fixes: 180c6b072bf3 ("KVM: PPC: Book3S HV nestedv2: Do not cancel pending decrementer exception")
    Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://msgid.link/20240415035731.103097-1-vaibhav@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 8e86eb577eb8e..692a7c6f5fd91 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -4857,7 +4857,7 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
 	 * entering a nested guest in which case the decrementer is now owned
 	 * by L2 and the L1 decrementer is provided in hdec_expires
 	 */
-	if (!kvmhv_is_nestedv2() && kvmppc_core_pending_dec(vcpu) &&
+	if (kvmppc_core_pending_dec(vcpu) &&
 			((tb < kvmppc_dec_expires_host_tb(vcpu)) ||
 			 (trap == BOOK3S_INTERRUPT_SYSCALL &&
 			  kvmppc_get_gpr(vcpu, 3) == H_ENTER_NESTED)))




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux