linux_dsm_epyc7002/virt/kvm/arm
Marc Zyngier c813bb17f2 KVM: arm/arm64: vgic-v2: Save maintenance interrupt state only if required
Next on our list of useless accesses is the maintenance interrupt
status registers (GICH_MISR, GICH_EISR{0,1}).

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: GICH_HCR_UIE will be set,
- EOI: GICH_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 GICH_MISR_EOI, and only when set read
GICH_EISR*.

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:22:21 +00:00
..
hyp KVM: arm/arm64: vgic-v2: Save maintenance interrupt state only if required 2016-03-09 04:22:21 +00:00
arch_timer.c KVM: arm/arm64: timer: Add active state caching 2016-02-29 18:34:22 +00:00
pmu.c arm64: KVM: Add a new vcpu device control group for PMUv3 2016-02-29 18:34:21 +00:00
trace.h arm/arm64: KVM: Add tracepoints for vgic and timer 2015-10-22 23:01:48 +02:00
vgic-v2-emul.c KVM: arm/arm64: rework MMIO abort handling to use KVM MMIO bus 2015-03-30 17:07:19 +01:00
vgic-v2.c KVM: arm/arm64: Merge vgic_set_lr() and vgic_sync_lr_elrsr() 2015-11-04 15:29:49 +01:00
vgic-v3-emul.c KVM: arm: vgic: Drop useless Group0 warning 2015-06-17 09:58:12 +01:00
vgic-v3.c arm64: KVM: Turn system register numbers to an enum 2015-12-14 11:30:43 +00:00
vgic.c KVM: arm/arm64: vgic: Ensure bitmaps are long enough 2016-02-23 19:02:48 +00:00
vgic.h KVM: arm/arm64: rework MMIO abort handling to use KVM MMIO bus 2015-03-30 17:07:19 +01:00