linux_dsm_epyc7002/arch/powerpc
Paul Mackerras ee3308a254 KVM: PPC: Book3S HV: Don't sleep if XIVE interrupt pending on POWER9
On a POWER9 system, it is possible for an interrupt to become pending
for a VCPU when that VCPU is about to cede (execute a H_CEDE hypercall)
and has already disabled interrupts, or in the H_CEDE processing up
to the point where the XIVE context is pulled from the hardware.  In
such a case, the H_CEDE should not sleep, but should return immediately
to the guest.  However, the conditions tested in kvmppc_vcpu_woken()
don't include the condition that a XIVE interrupt is pending, so the
VCPU could sleep until the next decrementer interrupt.

To fix this, we add a new xive_interrupt_pending() helper which looks
in the XIVE context that was pulled from the hardware to see if the
priority of any pending interrupt is higher (numerically lower than)
the CPU priority.  If so then kvmppc_vcpu_woken() will return true.
If the XIVE context has never been used, then both the pipr and the
cppr fields will be zero and the test will indicate that no interrupt
is pending.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
2017-06-20 15:46:12 +10:00
..
boot devicetree: Move include prefixes from arch to separate directory 2017-05-18 23:55:48 -07:00
configs powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-05-02 15:53:46 -07:00
include KVM: PPC: Book3S HV: Virtualize doorbell facility on POWER9 2017-06-19 14:34:37 +10:00
kernel KVM: PPC: Book3S HV: Virtualize doorbell facility on POWER9 2017-06-19 14:34:37 +10:00
kvm KVM: PPC: Book3S HV: Don't sleep if XIVE interrupt pending on POWER9 2017-06-20 15:46:12 +10:00
lib powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07:00
math-emu
mm powerpc/mm: Fix crash in page table dump with huge pages 2017-05-17 11:56:33 +10:00
net
oprofile
perf
platforms powerpc updates for 4.12 part 2 2017-05-12 10:04:09 -07:00
purgatory
sysdev powerpc updates for 4.12 part 2 2017-05-12 10:04:09 -07:00
tools powerpc: Add arch/powerpc/tools directory 2017-04-28 21:26:53 +10:00
xmon powerpc/xmon: Teach xmon oops about radix vectors 2017-05-01 18:52:58 +10:00
Kconfig powerpc updates for 4.12 part 2 2017-05-12 10:04:09 -07:00
Kconfig.debug
Makefile powerpc: Add arch/powerpc/tools directory 2017-04-28 21:26:53 +10:00
Makefile.postlink powerpc: Fix distclean with Makefile.postlink 2017-05-09 19:24:23 +10:00