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(-)