linux_dsm_epyc7002/virt/kvm/arm/vgic
Shih-Wei Li f6769581e9 KVM: arm/arm64: vgic: Avoid flushing vgic state when there's no pending IRQ
We do not need to flush vgic states in each world switch unless
there is pending IRQ queued to the vgic's ap list. We can thus reduce
the overhead by not grabbing the spinlock and not making the extra
function call to vgic_flush_lr_state.

Note: list_empty is a single atomic read (uses READ_ONCE) and can
therefore check if a list is empty or not without the need to take the
spinlock protecting the list.

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Shih-Wei Li <shihwei@cs.columbia.edu>
Signed-off-by: Christoffer Dall <cdall@linaro.org>
2017-04-09 07:45:31 -07:00
..
vgic-debug.c KVM: arm/arm64: vgic: Add debugfs vgic-state file 2017-01-25 13:50:03 +01:00
vgic-init.c KVM: arm/arm64: vgic: Defer touching GICH_VMCR to vcpu_load/put 2017-04-09 07:45:22 -07:00
vgic-irqfd.c KVM: arm/arm64: vgic: Stop injecting the MSI occurrence twice 2017-02-08 15:13:14 +00:00
vgic-its.c KVM: arm/arm64: VGIC: Fix command handling while ITS being disabled 2017-03-07 15:44:08 +00:00
vgic-kvm-device.c KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00
vgic-mmio-v2.c KVM: arm/arm64: vgic: Introduce VENG0 and VENG1 fields to vmcr struct 2017-01-30 13:47:21 +00:00
vgic-mmio-v3.c KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00
vgic-mmio.c KVM: arm/arm64: Let vcpu thread modify its own active state 2017-03-07 14:48:16 +00:00
vgic-mmio.h KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl 2017-01-30 13:47:29 +00:00
vgic-v2.c KVM: arm/arm64: vgic: Defer touching GICH_VMCR to vcpu_load/put 2017-04-09 07:45:22 -07:00
vgic-v3.c KVM: arm/arm64: vgic: Defer touching GICH_VMCR to vcpu_load/put 2017-04-09 07:45:22 -07:00
vgic.c KVM: arm/arm64: vgic: Avoid flushing vgic state when there's no pending IRQ 2017-04-09 07:45:31 -07:00
vgic.h KVM: arm/arm64: vgic: Defer touching GICH_VMCR to vcpu_load/put 2017-04-09 07:45:22 -07:00