[PATCH V2 0/2] KVM: PPC: Book3S HV: Support POWER9's large decrementer mode

Paul Mackerras paulus at ozlabs.org
Mon May 29 10:07:46 AEST 2017


One of the new features of POWER9 is that the decrementer (the
facility that provides an interrupt after a programmable length of
time) has been increased in size from 32 bits to 56 bits, allowing
time intervals of up to about 814 days, compared to 4 seconds
previously.  This patch series adds support for the large decrementer
mode to HV KVM.  There is already code in the host kernel to enable
large decrementer mode for the host, which means that some of the KVM
entry/exit code is currently incorrect; the first patch fixes that.
The second patch allows userspace to enable large decrementer mode for
the guest, by setting the appropriate bit in the guest LPCR value.

Changes in v2: use the presence of the ibm,dec-bits property to set
the CPU_FTR_LARGE_DEC bit rather than the ibm,pa-features property,
because QEMU already sets the large decrementer bit in the
ibm,pa-features property (correctly, since ibm,pa-features describes
the capabilities of the CPU hardware, not the settings established by
the host) but does not currently enable large decrementer mode for the
guest.

Paul.
---
 arch/powerpc/include/asm/cputable.h     |  4 ++-
 arch/powerpc/include/asm/kvm_host.h     |  2 +-
 arch/powerpc/kernel/prom.c              |  1 +
 arch/powerpc/kernel/time.c              |  7 ++---
 arch/powerpc/kvm/book3s_hv.c            |  2 ++
 arch/powerpc/kvm/book3s_hv_interrupts.S |  2 ++
 arch/powerpc/kvm/book3s_hv_rmhandlers.S | 51 ++++++++++++++++++++++++++-------
 arch/powerpc/kvm/emulate.c              |  4 +--
 8 files changed, 54 insertions(+), 19 deletions(-)


More information about the Linuxppc-dev mailing list