linux_dsm_epyc7002/arch/arm64/kvm
Andrew Murray 435e53fb5e arm64: KVM: Enable VHE support for :G/:H perf event modifiers
With VHE different exception levels are used between the host (EL2) and
guest (EL1) with a shared exception level for userpace (EL0). We can take
advantage of this and use the PMU's exception level filtering to avoid
enabling/disabling counters in the world-switch code. Instead we just
modify the counter type to include or exclude EL0 at vcpu_{load,put} time.

We also ensure that trapped PMU system register writes do not re-enable
EL0 when reconfiguring the backing perf events.

This approach completely avoids blackout windows seen with !VHE.

Suggested-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Andrew Murray <andrew.murray@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2019-04-24 15:46:26 +01:00
..
hyp arm64: KVM: Enable !VHE support for :G/:H perf event modifiers 2019-04-24 15:36:22 +01:00
debug.c arm/arm64: KVM: Introduce kvm_call_hyp_ret() 2019-02-19 21:05:24 +00:00
fpsimd.c KVM: arm64/sve: Context switch the SVE registers 2019-03-29 14:41:53 +00:00
guest.c KVM: arm64/sve: Explain validity checks in set_sve_vls() 2019-04-18 17:14:02 +01:00
handle_exit.c KVM: arm/arm64: Context-switch ptrauth registers 2019-04-24 15:30:40 +01:00
hyp-init.S arm64: KVM: Enable Common Not Private translations 2018-09-18 12:03:34 +01:00
hyp.S arm64: KVM: Drop VHE-specific HYP call stub 2019-02-19 21:05:28 +00:00
inject_fault.c arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS 2018-07-21 16:02:30 +01:00
irq.h KVM: arm/arm64: Enable irqchip routing 2016-07-22 18:52:01 +01:00
Kconfig treewide: surround Kconfig file paths with double quotes 2018-12-22 00:25:54 +09:00
Makefile arm64: KVM: Add accessors to track guest/host only counters 2019-04-24 15:35:30 +01:00
pmu.c arm64: KVM: Enable VHE support for :G/:H perf event modifiers 2019-04-24 15:46:26 +01:00
regmap.c kvm/arm: use PSR_AA32 definitions 2018-07-05 17:24:15 +01:00
reset.c KVM: arm64: Add capability to advertise ptrauth for guest 2019-04-24 15:30:40 +01:00
sys_regs_generic_v8.c KVM: arm64: Rewrite system register accessors to read/write functions 2018-03-19 10:53:16 +00:00
sys_regs.c arm64: KVM: Enable VHE support for :G/:H perf event modifiers 2019-04-24 15:46:26 +01:00
sys_regs.h KVM: arm64: Support runtime sysreg visibility filtering 2019-03-29 14:41:53 +00:00
trace.h arm64: KVM: Add trapped system register access tracepoint 2018-12-19 17:47:08 +00:00
va_layout.c arm64: KVM: Allow mapping of vectors outside of the RAM region 2018-03-19 13:06:46 +00:00
vgic-sys-reg-v3.c KVM: arm/arm64: Extract GICv3 max APRn index calculation 2017-09-05 17:33:39 +02:00