linux/arch/powerpc
Paul Mackerras 7aa15842c1 KVM: PPC: Book3S HV: Set RWMR on POWER8 so PURR/SPURR count correctly
Although Linux doesn't use PURR and SPURR ((Scaled) Processor
Utilization of Resources Register), other OSes depend on them.
On POWER8 they count at a rate depending on whether the VCPU is
idle or running, the activity of the VCPU, and the value in the
RWMR (Region-Weighting Mode Register).  Hardware expects the
hypervisor to update the RWMR when a core is dispatched to reflect
the number of online VCPUs in the vcore.

This adds code to maintain a count in the vcore struct indicating
how many VCPUs are online.  In kvmppc_run_core we use that count
to set the RWMR register on POWER8.  If the core is split because
of a static or dynamic micro-threading mode, we use the value for
8 threads.  The RWMR value is not relevant when the host is
executing because Linux does not use the PURR or SPURR register,
so we don't bother saving and restoring the host value.

For the sake of old userspace which does not set the KVM_REG_PPC_ONLINE
register, we set online to 1 if it was 0 at the time of a KVM_RUN
ioctl.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
2018-05-17 16:36:48 +10:00
..
boot powerpc updates for 4.17 2018-04-07 12:08:19 -07:00
configs scsi: remove the fdomain and fdomain_cs drivers 2018-03-19 22:54:47 -04:00
crypto crypto: hash - annotate algorithms taking optional key 2018-01-12 23:03:35 +11:00
include KVM: PPC: Book3S HV: Set RWMR on POWER8 so PURR/SPURR count correctly 2018-05-17 16:36:48 +10:00
kernel KVM: PPC: Book3S HV: Snapshot timebase offset on guest entry 2018-05-17 15:16:45 +10:00
kvm KVM: PPC: Book3S HV: Set RWMR on POWER8 so PURR/SPURR count correctly 2018-05-17 16:36:48 +10:00
lib powerpc/lib: Fix off-by-one in alternate feature patching 2018-04-17 00:37:48 +10:00
math-emu License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mm powerpc/mm: Flush cache on memory hot(un)plug 2018-04-24 09:46:56 +10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-05 11:29:24 -08:00
oprofile powerpc: Use sizeof(*foo) rather than sizeof(struct foo) 2018-03-20 16:47:53 +11:00
perf powerpc updates for 4.17 2018-04-07 12:08:19 -07:00
platforms rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops 2018-04-25 13:24:13 +10:00
purgatory License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sysdev powerpc/xive: Fix trying to "push" an already active pool VP 2018-04-19 00:49:45 +10:00
tools License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xmon Merge branch 'topic/paca' into next 2018-03-31 09:09:36 +11:00
Kconfig kexec_file: make use of purgatory optional 2018-04-13 17:10:27 -07:00
Kconfig.debug powerpc: Add new kconfig CONFIG_PPC_IRQ_SOFT_MASK_DEBUG 2018-01-19 22:37:03 +11:00
Makefile powerpc/64s: Add POWER9 CPU type selection 2018-04-01 22:15:32 +10:00
Makefile.postlink License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00