The first 9 patches are a bunch of independent small cleanups and improvements I've collected. The next 4 are improvements to POWER9 idle state entry and exit. They significantly change how we enter idle, now in virtual mode and without ptesync. EC=0 idle is significantly simplified from there, and does not save anything.
This runs fine on a DD1 test machine, but the hardware has some problem with performance all over the place, so I'm not able to get anything meaningful there yet. Thanks, Nick Nicholas Piggin (13): powerpc/64s: masked interrupt avoid branch powerpc/64s: masked interrupt avoid instruction powerpc/64s: masked interrupt returns to kernel so avoid r13 restore powerpc/64: cleanup __check_irq_replay powerpc/64s: irq replay merge HV and non-HV paths for doorbell replay powerpc/64s: irq replay external use the HV handler in HV mode on POWER9 powerpc/64: remove redundant instruction in interrupt replay powerpc/64s: irq replay remove spurious irq reason powerpc/64: runlatch CTRL[RUN] set optimisation powerpc/64s: idle simplify KVM idle on POWER9 powerpc/64s: idle POWER9 can execute stop without ptesync powerpc/64s: idle POWER9 can execute stop in virtual mode powerpc/64s: idle ESL=0 stop can avoid all save/restore overhead arch/powerpc/include/asm/kvm_book3s_asm.h | 4 +++ arch/powerpc/kernel/entry_64.S | 7 +--- arch/powerpc/kernel/exceptions-64s.S | 19 +++++----- arch/powerpc/kernel/idle_book3s.S | 60 ++++++++++++++----------------- arch/powerpc/kernel/irq.c | 47 ++++++++++++------------ arch/powerpc/kernel/process.c | 35 +++++++++++++----- arch/powerpc/kvm/book3s_hv.c | 37 ++++++++++++++++--- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 32 ++++++++++------- 8 files changed, 143 insertions(+), 98 deletions(-) -- 2.11.0