diff mbox series

[RFC,6/6] hw/arm/virt: Add cluster level for ARM device tree

Message ID 20210331095343.12172-7-wangyanan55@huawei.com
State New
Headers show
Series Introduce cluster cpu topology support | expand

Commit Message

wangyanan (Y) March 31, 2021, 9:53 a.m. UTC
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 | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index c9ad76ff64..d78db3387e 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -430,14 +430,20 @@  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 / (ms->smp.clusters * ms->smp.cores *
+                            ms->smp.threads),
+                            "cluster",
+                            (cpu / (ms->smp.cores * ms->smp.threads)) %
+                            ms->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 / (ms->smp.clusters * ms->smp.cores),
+                            "cluster", (cpu / ms->smp.cores) % ms->smp.clusters,
                             "core", cpu % ms->smp.cores);
             }
             qemu_fdt_add_path(vms->fdt, map_path);