linux/arch/arm64/kvm
Marc Zyngier b4344545cf arm64: KVM: vgic-v3: Save maintenance interrupt state only if required
Next on our list of useless accesses is the maintenance interrupt
status registers (ICH_MISR_EL2, ICH_EISR_EL2).

It is pointless to save them if we haven't asked for a maintenance
interrupt the first place, which can only happen for two reasons:
- Underflow: ICH_HCR_UIE will be set,
- EOI: ICH_LR_EOI will be set.

These conditions can be checked on the in-memory copies of the regs.
Should any of these two condition be valid, we must read GICH_MISR.
We can then check for ICH_MISR_EOI, and only when set read
ICH_EISR_EL2.

This means that in most case, we don't have to save them at all.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2016-03-09 04:24:06 +00:00
..
hyp arm64: KVM: vgic-v3: Save maintenance interrupt state only if required 2016-03-09 04:24:06 +00:00
debug.c KVM: arm64: add trace points for guest_debug debug 2015-07-21 12:50:43 +01:00
emulate.c arm64: kvm: move to ESR_ELx macros 2015-01-15 12:24:25 +00:00
guest.c arm64: KVM: Add a new vcpu device control group for PMUv3 2016-02-29 18:34:21 +00:00
handle_exit.c arm64: KVM: Turn system register numbers to an enum 2015-12-14 11:30:43 +00:00
hyp-init.S arm64: KVM: Switch to C-based stage2 init 2016-02-29 18:34:15 +00:00
hyp.S arm64: KVM: VHE: Patch out use of HVC 2016-02-29 18:34:16 +00:00
inject_fault.c arm64: KVM: Fix AArch64 guest userspace exception injection 2016-01-24 21:55:57 +00:00
Kconfig arm64: KVM: Define PMU data structure for each vcpu 2016-02-29 18:34:19 +00:00
Makefile arm64: KVM: Add access handler for event counter register 2016-02-29 18:34:20 +00:00
regmap.c arm64: KVM: 32bit GP register access 2013-06-12 16:42:14 +01:00
reset.c arm64: KVM: Introduce per-vcpu kvm device controls 2016-02-29 18:34:21 +00:00
sys_regs_generic_v8.c arm64: KVM: Correctly handle zero register in system register accesses 2015-12-04 16:29:54 +00:00
sys_regs.c arm64: KVM: Switch the sys_reg search to be a binary search 2016-02-29 18:34:22 +00:00
sys_regs.h arm64: KVM: Correctly handle zero register in system register accesses 2015-12-04 16:29:54 +00:00
trace.h KVM: arm64: add trace points for guest_debug debug 2015-07-21 12:50:43 +01:00