On Wed, Apr 20, 2022 at 10:24:46PM +0800, Gavin Shan wrote: ... > With amend to the command lines, the following one is used and below error > is raised from the test. The error is mentioned in the commit log in > PATCH[v7 2/4]. > > -machine smp.cpus=2 \ > -numa node,nodeid=0,memdev=ram -numa node,nodeid=1 \ > -numa cpu,node-id=1,thread-id=0 \ > -numa cpu,node-id=0,thread-id=1 > > qemu-system-aarch64: -numa cpu,node-id=0,thread-id=1: no match found > (reported from hw/core/machine.c::machine_set_cpu_numa_node()) > > After the changes to virt_possible_cpu_arch_ids() is applied, "thread-id=1" > isn't valid any more. The CPU topology becomes like below. Note that > mc->smp_props.prefer_sockets is true on arm/virt machine.
prefer_sockets is only true for mach-virt 6.1 and older. It's false for 6.2 and later. Thanks, drew > > index socket cluster core thread > -------------------------------------------- > 0 0 0 0 0 > 1 1 0 0 0 > > With the amended command lines, the topology changes again so > that "thread-id=1" is valid: > > index socket cluster core thread > -------------------------------------------- > 0 0 0 0 0 > 1 0 0 0 1 > > It should be ok to split the test/qtest/aarch64_numa_cpu() changes into > a separate patch and put it before this one. In that case, the specified > smp.{socket, cluster, core, threads} isn't used by arm/virt machine yet, > and 'thread-id=2' should be still valid. Lets do this if I need post v8. > Otherwise, I guess it's also fine to squash the test/qtest/aarch64_numa_cpu() > changes into PATCH[2/4], as we're doing. > > > > > > > > > > > > > > "-numa node,nodeid=0,memdev=ram -numa node,nodeid=1 " > > > > > "-numa cpu,node-id=1,thread-id=0 " > > > > > "-numa cpu,node-id=0,thread-id=1"); > > Thanks, > Gavin >