arm64: KVM: vgic-v3: Relax synchronization when SRE==1
authorMarc Zyngier <marc.zyngier@arm.com>
Wed, 25 May 2016 14:26:39 +0000 (15:26 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Tue, 31 May 2016 14:12:17 +0000 (16:12 +0200)
commitc58513284029229842844929ddeaca44d013c128
tree53e3161cbce9a94a724f9e9825350006a1c612a1
parenta057001e9e446f2195c34bc55c57e5cf353c99d6
arm64: KVM: vgic-v3: Relax synchronization when SRE==1

The GICv3 backend of the vgic is quite barrier heavy, in order
to ensure synchronization of the system registers and the
memory mapped view for a potential GICv2 guest.

But when the guest is using a GICv3 model, there is absolutely
no need to execute all these heavy barriers, and it is actually
beneficial to avoid them altogether.

This patch makes the synchonization conditional, and ensures
that we do not change the EL1 SRE settings if we do not need to.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm64/kvm/hyp/vgic-v3-sr.c