linux/include/kvm
Oliver Upton bc512d6a9b KVM: arm64: Make PMEVTYPER<n>_EL0.NSH RES0 if EL2 isn't advertised
The NSH bit, which filters event counting at EL2, is required by the
architecture if an implementation has EL2. Even though KVM doesn't
support nested virt yet, it makes no effort to hide the existence of EL2
from the ID registers. Userspace can, however, change the value of PFR0
to hide EL2. Align KVM's sysreg emulation with the architecture and make
NSH RES0 if EL2 isn't advertised. Keep in mind the bit is ignored when
constructing the backing perf event.

While at it, build the event type mask using explicit field definitions
instead of relying on ARMV8_PMU_EVTYPE_MASK. KVM probably should've been
doing this in the first place, as it avoids changes to the
aforementioned mask affecting sysreg emulation.

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20231019185618.3442949-2-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-10-24 19:26:14 +00:00
..
arm_arch_timer.h Merge branch kvm-arm64/timer-vm-offsets into kvmarm-master/next 2023-04-21 09:36:40 +01:00
arm_hypercalls.h KVM: arm64: Introduce support for userspace SMCCC filtering 2023-04-05 12:07:41 +01:00
arm_pmu.h KVM: arm64: Make PMEVTYPER<n>_EL0.NSH RES0 if EL2 isn't advertised 2023-10-24 19:26:14 +00:00
arm_psci.h KVM: arm64: Factor out firmware register handling from psci.c 2022-05-03 14:48:54 +01:00
arm_vgic.h KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption 2023-07-13 22:23:34 +00:00
iodev.h KVM: destruct kvm_io_device while unregistering it from kvm_io_bus 2023-06-13 14:18:09 -07:00