linux_dsm_epyc7002/arch/arm/kvm
Marc Zyngier 9b4a300443 KVM: arm/arm64: timer: Add active state caching
Programming the active state in the (re)distributor can be an
expensive operation so it makes some sense to try and reduce
the number of accesses as much as possible. So far, we
program the active state on each VM entry, but there is some
opportunity to do less.

An obvious solution is to cache the active state in memory,
and only program it in the HW when conditions change. But
because the HW can also change things under our feet (the active
state can transition from 1 to 0 when the guest does an EOI),
some precautions have to be taken, which amount to only caching
an "inactive" state, and always programing it otherwise.

With this in place, we observe a reduction of around 700 cycles
on a 2GHz GICv2 platform for a NULL hypercall.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2016-02-29 18:34:22 +00:00
..
hyp ARM: KVM: Use common version of timer-sr.c 2016-02-29 18:34:19 +00:00
arm.c KVM: arm/arm64: timer: Add active state caching 2016-02-29 18:34:22 +00:00
coproc_a7.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc_a15.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc.c ARM: KVM: Switch the CP reg search to be a binary search 2016-02-29 18:34:22 +00:00
coproc.h ARM: KVM: Rename struct coproc_reg::is_64 to is_64bit 2016-02-29 18:34:22 +00:00
emulate.c ARM: KVM: Move GP registers into the CPU context structure 2016-02-29 18:34:12 +00:00
guest.c ARM: KVM: Turn CP15 defines to an enum 2016-02-29 18:34:15 +00:00
handle_exit.c ARM: KVM: Remove handling of ARM_EXCEPTION_DATA/PREF_ABORT 2016-02-29 18:34:15 +00:00
init.S ARM: KVM: Switch to C-based stage2 init 2016-02-29 18:34:14 +00:00
interrupts.S ARM: KVM: Remove the old world switch 2016-02-29 18:34:14 +00:00
Kconfig arm/arm64: KVM : Enable vhost device selection under KVM config menu 2015-10-22 23:01:45 +02:00
Makefile ARM: KVM: Add TLB invalidation code 2016-02-29 18:34:13 +00:00
mmio.c arm/arm64: KVM: Feed initialized memory to MMIO accesses 2016-02-24 11:53:09 +00:00
mmu.c arm64: KVM: Skip HYP setup when already running in HYP 2016-02-29 18:34:16 +00:00
perf.c
psci.c arm64: KVM: Get rid of old vcpu_reg() 2015-12-04 16:30:03 +00:00
reset.c ARM: KVM: Move GP registers into the CPU context structure 2016-02-29 18:34:12 +00:00
trace.h arm/arm64: KVM: Improve kvm_exit tracepoint 2015-10-22 23:01:47 +02:00