* David Gibson <da...@gibson.dropbear.id.au> [2021-04-16 13:21:34]: Thanks for having a look at the patches.
> On Thu, Apr 15, 2021 at 05:39:32PM +0530, Srikar Dronamraju wrote: > > Daniel reported that with Commit 4ca234a9cbd7 ("powerpc/smp: Stop > > updating cpu_core_mask") QEMU was unable to set single NUMA node SMP > > topologies such as: > > -smp 8,maxcpus=8,cores=2,threads=2,sockets=2 > > i.e he expected 2 sockets in one NUMA node. > > Well, strictly speaking, you can still set that toplogy in qemu but a > PAPR guest with that commit will show as having 1 socket in lscpu and > similar things. > Right, I did mention the o/p of lscpu in QEMU with the said commit and with the new patches in the cover letter. Somehow I goofed up the cc list for the cover letter. Reference for the cover letter: https://lore.kernel.org/linuxppc-dev/20210415120934.232271-1-sri...@linux.vnet.ibm.com/t/#u > Basically, this is because PAPR has no meaningful distinction between > cores and sockets. So it's kind of a cosmetic problem, but it is a > user-unexpected behaviour that it would be nice to avoid if it's not > excessively difficult. > > > The above commit helped to reduce boot time on Large Systems for > > example 4096 vCPU single socket QEMU instance. PAPR is silent on > > having more than one socket within a NUMA node. > > > > cpu_core_mask and cpu_cpu_mask for any CPU would be same unless the > > number of sockets is different from the number of NUMA nodes. > > Number of sockets being different from number of NUMA nodes is routine > in qemu, and I don't think it's something we should enforce. > > > One option is to reintroduce cpu_core_mask but use a slightly > > different method to arrive at the cpu_core_mask. Previously each CPU's > > chip-id would be compared with all other CPU's chip-id to verify if > > both the CPUs were related at the chip level. Now if a CPU 'A' is > > found related / (unrelated) to another CPU 'B', all the thread > > siblings of 'A' and thread siblings of 'B' are automatically marked as > > related / (unrelated). > > > > Also if a platform doesn't support ibm,chip-id property, i.e its > > cpu_to_chip_id returns -1, cpu_core_map holds a copy of > > cpu_cpu_mask(). > > Yeah, the other weirdness here is that ibm,chip-id isn't a PAPR > property at all - it was added for powernv. We then added it to qemu > for PAPR guests because that was the way at the time to get the guest > to advertise the expected number of sockets. It therefore basically > *only* exists on PAPR/qemu for that purpose, so if it's not serving it > we need to come up with something else. > Do you have ideas on what that something could be like? So if that's more beneficial then we could move over to that scheme. Also apart from ibm,chip-id being not a PAPR property, do you have any other concerns with it. -- Thanks and Regards Srikar Dronamraju