linux/arch/powerpc
Nicholas Piggin 9d3ddb86d9 KVM: PPC: Book3S HV P9: Demand fault PMU SPRs when marked not inuse
The pmcregs_in_use field in the guest VPA can not be trusted to reflect
what the guest is doing with PMU SPRs, so the PMU must always be managed
(stopped) when exiting the guest, and SPR values set when entering the
guest to ensure it can't cause a covert channel or otherwise cause other
guests or the host to misbehave.

So prevent guest access to the PMU with HFSCR[PM] if pmcregs_in_use is
clear, and avoid the PMU SPR access on every partition switch. Guests
that set pmcregs_in_use incorrectly or when first setting it and using
the PMU will take a hypervisor facility unavailable interrupt that will
bring in the PMU SPRs.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Athira Jajeev <atrajeev@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211123095231.1036501-16-npiggin@gmail.com
2021-11-24 21:08:58 +11:00
..
boot powerpc updates for 5.16 2021-11-05 08:15:46 -07:00
configs Merge branch 'akpm' (patches from Andrew) 2021-11-06 14:08:17 -07:00
crypto
include KVM: PPC: Book3S HV P9: Implement PMU save/restore in C 2021-11-24 21:08:58 +11:00
kernel powerpc/64s: Always set PMU control registers to frozen/disabled when not in use 2021-11-24 21:08:57 +11:00
kexec powerpc/machdep: Remove stale functions from ppc_md structure 2021-10-22 15:22:05 +11:00
kvm KVM: PPC: Book3S HV P9: Demand fault PMU SPRs when marked not inuse 2021-11-24 21:08:58 +11:00
lib Kbuild updates for v5.16 2021-11-08 09:15:45 -08:00
math-emu powerpc/64s: avoid reloading (H)SRR registers if they are still valid 2021-06-25 00:06:55 +10:00
mm powerpc/64s: Keep AMOR SPR a constant ~0 at runtime 2021-11-24 21:08:57 +11:00
net powerpc updates for 5.16 2021-11-05 08:15:46 -07:00
perf powerpc/64s: Implement PMU override command line option 2021-11-24 21:08:57 +11:00
platforms powerpc/64s: Keep AMOR SPR a constant ~0 at runtime 2021-11-24 21:08:57 +11:00
purgatory powerpc/kexec: Don't use .machine ppc64 in trampoline_64.S 2021-04-08 21:17:43 +10:00
sysdev powerpc/xive: Change IRQ domain to a tree domain 2021-11-17 21:55:42 +11:00
tools powerpc/head_check: Fix shellcheck errors 2021-08-17 22:52:02 +10:00
xmon powerpc/64s: guard optional TIDR SPR with CPU ftr test 2021-11-24 21:08:56 +11:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig powerpc/64s: Default to 64K pages for 64 bit book3s 2021-10-27 22:31:22 +11:00
Kconfig.debug powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP 2021-08-25 13:35:48 +10:00
Makefile Kbuild updates for v5.16 2021-11-08 09:15:45 -08:00
Makefile.postlink