Re: [PATCH 2/2] kvm/arm: Add mp_affinity for arm vcpu

Andrew Jones
2020-09-17T08:08:33Z

On Thu, Sep 17, 2020 at 08:47:42AM +0100, Marc Zyngier wrote:
> On 2020-09-17 03:30, Ying Fang wrote:
> > Allow userspace to set MPIDR using vcpu ioctl KVM_ARM_SET_MP_AFFINITY,
> > so that we can support cpu topology for arm.
>
> MPIDR has *nothing* to do with CPU topology in the ARM architecture.
> I encourage you to have a look at the ARM ARM and find out how often
> the word "topology" is used in conjunction with the MPIDR_EL1 register.
>

Hi Marc,

I mostly agree. However, the CPU topology descriptions use MPIDR to
identify PEs. If userspace wants to build topology descriptions then
it either needs to

1) build them after instantiating all KVM VCPUs in order to query KVM
for each MPIDR, or
2) have a way to ask KVM for an MPIDR of given VCPU ID in advance
(maybe just a scratch VCPU), or
3) have control over the MPIDRs so it can choose them when it likes,
use them for topology descriptions, and then instantiate KVM VCPUs
with them.

I think (3) is the most robust approach, and it has the least overhead.

Thanks,
drew