Message ID | 20210413083147.34236-5-wangyanan55@huawei.com |
---|---|
State | New |
Headers | show |
Series | hw/arm/virt: Introduce cluster cpu topology support | expand |
On Tue, Apr 13, 2021 at 04:31:47PM +0800, Yanan Wang wrote: > Add a cluster level between core level and package level for > ARM device tree. > > Signed-off-by: Yanan Wang <wangyanan55@huawei.com> > --- > hw/arm/virt.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index 51797628db..4468a4734b 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -434,14 +434,18 @@ static void fdt_add_cpu_nodes(const VirtMachineState *vms) > > if (ms->smp.threads > 1) { > map_path = g_strdup_printf( > - "/cpus/cpu-map/%s%d/%s%d/%s%d", > - "socket", cpu / (ms->smp.cores * ms->smp.threads), > + "/cpus/cpu-map/%s%d/%s%d/%s%d/%s%d", > + "socket", cpu / (vms->smp_clusters * ms->smp.cores * > + ms->smp.threads), > + "cluster", (cpu / (ms->smp.cores * ms->smp.threads)) % > + vms->smp_clusters, > "core", (cpu / ms->smp.threads) % ms->smp.cores, > "thread", cpu % ms->smp.threads); > } else { > map_path = g_strdup_printf( > - "/cpus/cpu-map/%s%d/%s%d", > - "socket", cpu / ms->smp.cores, > + "/cpus/cpu-map/%s%d/%s%d/%s%d", > + "socket", cpu / (vms->smp_clusters * ms->smp.cores), > + "cluster", (cpu / ms->smp.cores) % vms->smp_clusters, > "core", cpu % ms->smp.cores); > } > qemu_fdt_add_path(ms->fdt, map_path); > -- > 2.19.1 > Reviewed-by: Andrew Jones <drjones@redhat.com>
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 51797628db..4468a4734b 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -434,14 +434,18 @@ static void fdt_add_cpu_nodes(const VirtMachineState *vms) if (ms->smp.threads > 1) { map_path = g_strdup_printf( - "/cpus/cpu-map/%s%d/%s%d/%s%d", - "socket", cpu / (ms->smp.cores * ms->smp.threads), + "/cpus/cpu-map/%s%d/%s%d/%s%d/%s%d", + "socket", cpu / (vms->smp_clusters * ms->smp.cores * + ms->smp.threads), + "cluster", (cpu / (ms->smp.cores * ms->smp.threads)) % + vms->smp_clusters, "core", (cpu / ms->smp.threads) % ms->smp.cores, "thread", cpu % ms->smp.threads); } else { map_path = g_strdup_printf( - "/cpus/cpu-map/%s%d/%s%d", - "socket", cpu / ms->smp.cores, + "/cpus/cpu-map/%s%d/%s%d/%s%d", + "socket", cpu / (vms->smp_clusters * ms->smp.cores), + "cluster", (cpu / ms->smp.cores) % vms->smp_clusters, "core", cpu % ms->smp.cores); } qemu_fdt_add_path(ms->fdt, map_path);
Add a cluster level between core level and package level for ARM device tree. Signed-off-by: Yanan Wang <wangyanan55@huawei.com> --- hw/arm/virt.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)