Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: PPC: Book3S HV: XIVE: Add a comment regarding VP numbering

When the XIVE resources are allocated at the HW level, the VP
structures describing the vCPUs of a guest are distributed among
the chips to optimize the PowerBUS usage. For best performance, the
guest vCPUs can be pinned to match the VP structure distribution.

Currently, the VP identifiers are deduced from the vCPU id using
the kvmppc_pack_vcpu_id() routine which is not incorrect but not
optimal either. It VSMT is used, the result is not continuous and
the constraints on HW resources described above can not be met.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201210171450.1933725-14-clg@kaod.org

authored by

Cédric Le Goater and committed by
Michael Ellerman
dddc4ef9 07efbca1

+11
+11
arch/powerpc/kvm/book3s_xive.h
··· 218 218 return xive->src_blocks[bid]; 219 219 } 220 220 221 + /* 222 + * When the XIVE resources are allocated at the HW level, the VP 223 + * structures describing the vCPUs of a guest are distributed among 224 + * the chips to optimize the PowerBUS usage. For best performance, the 225 + * guest vCPUs can be pinned to match the VP structure distribution. 226 + * 227 + * Currently, the VP identifiers are deduced from the vCPU id using 228 + * the kvmppc_pack_vcpu_id() routine which is not incorrect but not 229 + * optimal either. It VSMT is used, the result is not continuous and 230 + * the constraints on HW resources described above can not be met. 231 + */ 221 232 static inline u32 kvmppc_xive_vp(struct kvmppc_xive *xive, u32 server) 222 233 { 223 234 return xive->vp_base + kvmppc_pack_vcpu_id(xive->kvm, server);