Re: [PATCH] kvm/arm64: change gicv3_cpuif to static likely branch

From: Guoheyi
Date: Sat Nov 30 2019 - 01:58:32 EST




On 2019/11/30 14:39, Marc Zyngier wrote:
On Sat, 30 Nov 2019 03:14:43 +0000,
Heyi Guo <guoheyi@xxxxxxxxxx> wrote:
Platforms running hypervisor nowadays are normally powerful servers
which at least support GICv3, so it should be better to switch
kvm_vgic_global_state.gicv3_cpuif to static likely branch, which can
reduce two "b" instructions to a single "nop" for GICv3 branches.

We don't update arm32 specific code for they may still only have
GICv2.
There is a number of disputable statements here.

Out of the fairly large zoo of arm64 systems I have access to, 75% of
them are based on GICv2, so they are still the overwhelming majority.
Yes, they all run KVM (otherwise I would ignore them).
Really? I'm surprised to know that... Sorry I didn't see such GICv2 platforms in my work, so I made the wrong assumption.
I don't expect much performance improvement for GICv3 platforms. The precondition for this patch is that few platforms running KVM are using GICv2. If it is not right, please just ignore it.

Thanks,
HG


Furthermore, I would expect that "powerful servers" are perfectly
capable to execute a couple of branches without breaking a sweat.

Finally, you don't provide any number supporting that:

- GICv3 systems see a performance improvement across the large variety
of CPU implementations
- GICv2 systems don't see a performance regression

Once you provide such numbers, I'll reevaluate my position. Until
then, I'm not considering this kind of change.

Thanks,

M.