[PATCH v4 00/53] KVM: PPC: Book3S HV P9: entry/exit optimisations

Michael Ellerman patch-notifications at ellerman.id.au
Thu Nov 25 20:38:00 AEDT 2021


On Tue, 23 Nov 2021 19:51:38 +1000, Nicholas Piggin wrote:
> This reduces radix guest full entry/exit latency on POWER9 and POWER10
> by 2x.
> 
> Nested HV guests should see smaller improvements in their L1 entry/exit,
> but this is also combined with most L0 speedups also applying to nested
> entry. nginx localhost throughput test in a SMP nested guest is improved
> about 10% (in a direct guest it doesn't change much because it uses XIVE
> for IPIs) when L0 and L1 are patched.
> 
> [...]

Applied to powerpc/next.

[01/53] powerpc/64s: Remove WORT SPR from POWER9/10 (take 2)
        https://git.kernel.org/powerpc/c/f53884b1bf28497e9596cac8b44ef1d41bd6dfc5
[02/53] powerpc/64s: guard optional TIDR SPR with CPU ftr test
        https://git.kernel.org/powerpc/c/736df58fd5bcd02f811f7d474bbe02a35ffaa8f0
[03/53] KMV: PPC: Book3S HV P9: Use set_dec to set decrementer to host
        https://git.kernel.org/powerpc/c/5955c7469a73033f607ebd6d418058943fe13dd3
[04/53] KVM: PPC: Book3S HV P9: Use host timer accounting to avoid decrementer read
        https://git.kernel.org/powerpc/c/4ebbd075bcde7884e078d4360510b989f559bfec
[05/53] KVM: PPC: Book3S HV P9: Use large decrementer for HDEC
        https://git.kernel.org/powerpc/c/9581991a60817abe311c2581ae4554b28bfa32f1
[06/53] KVM: PPC: Book3S HV P9: Reduce mftb per guest entry/exit
        https://git.kernel.org/powerpc/c/34bf08a2079fffc7206a1ae93086ab8167e0afb6
[07/53] powerpc/time: add API for KVM to re-arm the host timer/decrementer
        https://git.kernel.org/powerpc/c/25aa145856cd0d94864bf501218be84a7c8062ae
[08/53] KVM: PPC: Book3S HV: POWER10 enable HAIL when running radix guests
        https://git.kernel.org/powerpc/c/eacc818864bb01828280f4d64334c4e5ae6a4daf
[09/53] powerpc/64s: Keep AMOR SPR a constant ~0 at runtime
        https://git.kernel.org/powerpc/c/46f9caf1a246a5c0622fa8cc7e673658e925f97e
[10/53] KVM: PPC: Book3S HV: Don't always save PMU for guest capable of nesting
        https://git.kernel.org/powerpc/c/d3c8a2d3740d93778ea102d4c781746d284177bf
[11/53] powerpc/64s: Always set PMU control registers to frozen/disabled when not in use
        https://git.kernel.org/powerpc/c/245ebf8e7380b3d84c0aac37fbfd9306b45a3a7a
[12/53] powerpc/64s: Implement PMU override command line option
        https://git.kernel.org/powerpc/c/0a4b4327ce867e3ac1b3ad15f4d2b686b516b3a2
[13/53] KVM: PPC: Book3S HV P9: Implement PMU save/restore in C
        https://git.kernel.org/powerpc/c/57dc0eed73caa31bfe36ce8fed234e214e37a5ae
[14/53] KVM: PPC: Book3S HV P9: Factor PMU save/load into context switch functions
        https://git.kernel.org/powerpc/c/401e1ae372673664465d45a86975c006dc6a488d
[15/53] KVM: PPC: Book3S HV P9: Demand fault PMU SPRs when marked not inuse
        https://git.kernel.org/powerpc/c/9d3ddb86d96d9f0314f3baaf0e37f987b40d3eee
[16/53] KVM: PPC: Book3S HV P9: Factor out yield_count increment
        https://git.kernel.org/powerpc/c/b1adcf57ceca7eab9bfdafc754802e05e634bfcc
[17/53] KVM: PPC: Book3S HV: CTRL SPR does not require read-modify-write
        https://git.kernel.org/powerpc/c/a1a19e1154e4e9c6c1136474cb040657b1c17817
[18/53] KVM: PPC: Book3S HV P9: Move SPRG restore to restore_p9_host_os_sprs
        https://git.kernel.org/powerpc/c/174a3ab633392859888fc1a5cff278d5546d8474
[19/53] KVM: PPC: Book3S HV P9: Reduce mtmsrd instructions required to save host SPRs
        https://git.kernel.org/powerpc/c/34e119c96b2b381278d1ddf6b1708678462daba4
[20/53] KVM: PPC: Book3S HV P9: Improve mtmsrd scheduling by delaying MSR[EE] disable
        https://git.kernel.org/powerpc/c/2251fbe76395e4d89c31099984714c5f1135f052
[21/53] KVM: PPC: Book3S HV P9: Add kvmppc_stop_thread to match kvmppc_start_thread
        https://git.kernel.org/powerpc/c/cf99dedb4b2d2a18e004b1c84852fffa810dc44c
[22/53] KVM: PPC: Book3S HV: Change dec_expires to be relative to guest timebase
        https://git.kernel.org/powerpc/c/3c1a4322bba79aad2d3f6f996b7e1c336bd909b3
[23/53] KVM: PPC: Book3S HV P9: Move TB updates
        https://git.kernel.org/powerpc/c/6547af3eba88e4806e853fee7547031b2cc6a560
[24/53] KVM: PPC: Book3S HV P9: Optimise timebase reads
        https://git.kernel.org/powerpc/c/cb2553a093093ae46cfaee31321bcedcd0312c5d
[25/53] KVM: PPC: Book3S HV P9: Avoid SPR scoreboard stalls
        https://git.kernel.org/powerpc/c/9a1e530bbbdaa2184993a7d7fc61d78871540ccd
[26/53] KVM: PPC: Book3S HV P9: Only execute mtSPR if the value changed
        https://git.kernel.org/powerpc/c/9dfe7aa7bc50556063c8658f59ad475131c09b65
[27/53] KVM: PPC: Book3S HV P9: Juggle SPR switching around
        https://git.kernel.org/powerpc/c/0f3b6c4851aef7a98b435c6f08b2c9c88165d254
[28/53] KVM: PPC: Book3S HV P9: Move vcpu register save/restore into functions
        https://git.kernel.org/powerpc/c/516b334210b831827e0491676625323f484275dd
[29/53] KVM: PPC: Book3S HV P9: Move host OS save/restore functions to built-in
        https://git.kernel.org/powerpc/c/aabcaf6ae2a0912898bd243f0aec0ce6853983fc
[30/53] KVM: PPC: Book3S HV P9: Move nested guest entry into its own function
        https://git.kernel.org/powerpc/c/08b3f08af583c01b3cfdc15bda68063c2a401512
[31/53] KVM: PPC: Book3S HV P9: Move remaining SPR and MSR access into low level entry
        https://git.kernel.org/powerpc/c/d5f480194577423731ee8413791a5486f26a95ab
[32/53] KVM: PPC: Book3S HV P9: Implement TM fastpath for guest entry/exit
        https://git.kernel.org/powerpc/c/3f9e2966d1b0dd81bcfaeb816335e0ddeedde3c1
[33/53] KVM: PPC: Book3S HV P9: Switch PMU to guest as late as possible
        https://git.kernel.org/powerpc/c/3e7b3379023dad2e78c3200373a6368f5d0ee599
[34/53] KVM: PPC: Book3S HV P9: Restrict DSISR canary workaround to processors that require it
        https://git.kernel.org/powerpc/c/d55b1eccc7aa14a1750aecf271806365478ca805
[35/53] KVM: PPC: Book3S HV P9: More SPR speed improvements
        https://git.kernel.org/powerpc/c/34e02d555d8fa36cc756a083de1eeb56edab0e00
[36/53] KVM: PPC: Book3S HV P9: Demand fault EBB facility registers
        https://git.kernel.org/powerpc/c/a3e18ca8ab6f7f2260978f0a3842845414d799c0
[37/53] KVM: PPC: Book3S HV P9: Demand fault TM facility registers
        https://git.kernel.org/powerpc/c/022ecb960c89faad42ff0b417a71d9255dd115a3
[38/53] KVM: PPC: Book3S HV P9: Use Linux SPR save/restore to manage some host SPRs
        https://git.kernel.org/powerpc/c/5236756d04454c7ce9f45e27b434d75b8d6f8759
[39/53] KVM: PPC: Book3S HV P9: Comment and fix MMU context switching code
        https://git.kernel.org/powerpc/c/cf3b16cfa6503b1fe5e680f9711262e6a51ef097
[40/53] KVM: PPC: Book3S HV P9: Test dawr_enabled() before saving host DAWR SPRs
        https://git.kernel.org/powerpc/c/9c75f65f3583b0cf467c378a1076f0b50bbc2fb1
[41/53] KVM: PPC: Book3S HV P9: Don't restore PSSCR if not needed
        https://git.kernel.org/powerpc/c/a089a6869e7f613a8d961ac65bafd127317e4c5c
[42/53] KVM: PPC: Book3S HV: Split P8 from P9 path guest vCPU TLB flushing
        https://git.kernel.org/powerpc/c/0ba0e5d5a691806cca3d4f290dcc61f656049872
[43/53] KVM: PPC: Book3S HV P9: Avoid tlbsync sequence on radix guest exit
        https://git.kernel.org/powerpc/c/d5c0e8332d82c04deee25dd6f28c5bbe84d49a73
[44/53] KVM: PPC: Book3S HV Nested: Avoid extra mftb() in nested entry
        https://git.kernel.org/powerpc/c/46dea77f790c1e7ab2e9f7452e34de0dc5da9b13
[45/53] KVM: PPC: Book3S HV P9: Improve mfmsr performance on entry
        https://git.kernel.org/powerpc/c/b49c65c5f9f1dac4ef1764578ad55bacf526eb38
[46/53] KVM: PPC: Book3S HV P9: Optimise hash guest SLB saving
        https://git.kernel.org/powerpc/c/241d1f19f0e5c257881a0661f201b51dc3e57f8c
[47/53] KVM: PPC: Book3S HV P9: Avoid changing MSR[RI] in entry and exit
        https://git.kernel.org/powerpc/c/f08cbf5c7d1f86f12143a1dce23740411b03a807
[48/53] KVM: PPC: Book3S HV P9: Add unlikely annotation for !mmu_ready
        https://git.kernel.org/powerpc/c/4c9a68914eab1f17f6c428c579ffd75c4448461e
[49/53] KVM: PPC: Book3S HV P9: Avoid cpu_in_guest atomics on entry and exit
        https://git.kernel.org/powerpc/c/434398ab5eed03dbc0075af9436e871712bfb45a
[50/53] KVM: PPC: Book3S HV P9: Remove most of the vcore logic
        https://git.kernel.org/powerpc/c/ecb6a7207f92e33c2b7a1271165ecf5d8f420bba
[51/53] KVM: PPC: Book3S HV P9: Tidy kvmppc_create_dtl_entry
        https://git.kernel.org/powerpc/c/617326ff01df30796d897895ebd18ce583c9b883
[52/53] KVM: PPC: Book3S HV P9: Stop using vc->dpdes
        https://git.kernel.org/powerpc/c/6398326b9ba182936bdc9d66475c09e39b701aa2
[53/53] KVM: PPC: Book3S HV P9: Remove subcore HMI handling
        https://git.kernel.org/powerpc/c/9c5a432a558105d6145b058fad78eb6fcf3d4c38

cheers


More information about the Linuxppc-dev mailing list