qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Andrew Jones" <ajones@ventanamicro.com>,
	"Ani Sinha" <anisinha@redhat.com>,
	qemu-arm@nongnu.org, "Shannon Zhao" <shannon.zhaosl@gmail.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH 14/20] hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field
Date: Fri, 17 Oct 2025 15:08:13 +0200	[thread overview]
Message-ID: <20251017130821.58388-15-philmd@linaro.org> (raw)
In-Reply-To: <20251017130821.58388-1-philmd@linaro.org>

The VirtMachineClass::no_cpu_topology field was
only used by virt-6.1 machine, which got removed.
Remove it as now unused.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/arm/virt.h    |  2 -
 hw/arm/virt-acpi-build.c |  9 ++---
 hw/arm/virt.c            | 85 +++++++++++++++++++---------------------
 3 files changed, 43 insertions(+), 53 deletions(-)

diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 21d91a43d8b..ca2e59ec569 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -122,8 +122,6 @@ typedef enum VirtGICType {
 struct VirtMachineClass {
     MachineClass parent;
     bool no_highmem_compact;
-    /* Machines < 6.2 have no support for describing cpu topology to guest */
-    bool no_cpu_topology;
     bool no_tcg_lpa2;
     bool no_ns_el2_virt_timer_irq;
     bool no_nested_smmu;
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 5db5baa7cf3..8d40570c1e3 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -1110,7 +1110,6 @@ static const AcpiNotificationSourceId hest_ghes_notify_10_0[] = {
 static
 void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
 {
-    VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
     GArray *table_offsets;
     unsigned dsdt, xsdt;
     GArray *tables_blob = tables->table_data;
@@ -1134,11 +1133,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
     acpi_add_table(table_offsets, tables_blob);
     build_madt(tables_blob, tables->linker, vms);
 
-    if (!vmc->no_cpu_topology) {
-        acpi_add_table(table_offsets, tables_blob);
-        build_pptt(tables_blob, tables->linker, ms,
-                   vms->oem_id, vms->oem_table_id);
-    }
+    acpi_add_table(table_offsets, tables_blob);
+    build_pptt(tables_blob, tables->linker, ms,
+               vms->oem_id, vms->oem_table_id);
 
     acpi_add_table(table_offsets, tables_blob);
     build_gtdt(tables_blob, tables->linker, vms);
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 3e7858d6e11..4243da3c87e 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -431,7 +431,6 @@ static void fdt_add_cpu_nodes(const VirtMachineState *vms)
     int cpu;
     int addr_cells = 1;
     const MachineState *ms = MACHINE(vms);
-    const VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
     int smp_cpus = ms->smp.cpus;
 
     /*
@@ -488,57 +487,53 @@ static void fdt_add_cpu_nodes(const VirtMachineState *vms)
                 ms->possible_cpus->cpus[cs->cpu_index].props.node_id);
         }
 
-        if (!vmc->no_cpu_topology) {
-            qemu_fdt_setprop_cell(ms->fdt, nodename, "phandle",
-                                  qemu_fdt_alloc_phandle(ms->fdt));
-        }
+        qemu_fdt_setprop_cell(ms->fdt, nodename, "phandle",
+                              qemu_fdt_alloc_phandle(ms->fdt));
 
         g_free(nodename);
     }
 
-    if (!vmc->no_cpu_topology) {
-        /*
-         * Add vCPU topology description through fdt node cpu-map.
-         *
-         * See Linux Documentation/devicetree/bindings/cpu/cpu-topology.txt
-         * In a SMP system, the hierarchy of CPUs can be defined through
-         * four entities that are used to describe the layout of CPUs in
-         * the system: socket/cluster/core/thread.
-         *
-         * A socket node represents the boundary of system physical package
-         * and its child nodes must be one or more cluster nodes. A system
-         * can contain several layers of clustering within a single physical
-         * package and cluster nodes can be contained in parent cluster nodes.
-         *
-         * Note: currently we only support one layer of clustering within
-         * each physical package.
-         */
-        qemu_fdt_add_subnode(ms->fdt, "/cpus/cpu-map");
+    /*
+     * Add vCPU topology description through fdt node cpu-map.
+     *
+     * See Linux Documentation/devicetree/bindings/cpu/cpu-topology.txt
+     * In a SMP system, the hierarchy of CPUs can be defined through
+     * four entities that are used to describe the layout of CPUs in
+     * the system: socket/cluster/core/thread.
+     *
+     * A socket node represents the boundary of system physical package
+     * and its child nodes must be one or more cluster nodes. A system
+     * can contain several layers of clustering within a single physical
+     * package and cluster nodes can be contained in parent cluster nodes.
+     *
+     * Note: currently we only support one layer of clustering within
+     * each physical package.
+     */
+    qemu_fdt_add_subnode(ms->fdt, "/cpus/cpu-map");
 
-        for (cpu = smp_cpus - 1; cpu >= 0; cpu--) {
-            char *cpu_path = g_strdup_printf("/cpus/cpu@%d", cpu);
-            char *map_path;
+    for (cpu = smp_cpus - 1; cpu >= 0; cpu--) {
+        char *cpu_path = g_strdup_printf("/cpus/cpu@%d", cpu);
+        char *map_path;
 
-            if (ms->smp.threads > 1) {
-                map_path = g_strdup_printf(
-                    "/cpus/cpu-map/socket%d/cluster%d/core%d/thread%d",
-                    cpu / (ms->smp.clusters * ms->smp.cores * ms->smp.threads),
-                    (cpu / (ms->smp.cores * ms->smp.threads)) % ms->smp.clusters,
-                    (cpu / ms->smp.threads) % ms->smp.cores,
-                    cpu % ms->smp.threads);
-            } else {
-                map_path = g_strdup_printf(
-                    "/cpus/cpu-map/socket%d/cluster%d/core%d",
-                    cpu / (ms->smp.clusters * ms->smp.cores),
-                    (cpu / ms->smp.cores) % ms->smp.clusters,
-                    cpu % ms->smp.cores);
-            }
-            qemu_fdt_add_path(ms->fdt, map_path);
-            qemu_fdt_setprop_phandle(ms->fdt, map_path, "cpu", cpu_path);
-
-            g_free(map_path);
-            g_free(cpu_path);
+        if (ms->smp.threads > 1) {
+            map_path = g_strdup_printf(
+                "/cpus/cpu-map/socket%d/cluster%d/core%d/thread%d",
+                cpu / (ms->smp.clusters * ms->smp.cores * ms->smp.threads),
+                (cpu / (ms->smp.cores * ms->smp.threads)) % ms->smp.clusters,
+                (cpu / ms->smp.threads) % ms->smp.cores,
+                cpu % ms->smp.threads);
+        } else {
+            map_path = g_strdup_printf(
+                "/cpus/cpu-map/socket%d/cluster%d/core%d",
+                cpu / (ms->smp.clusters * ms->smp.cores),
+                (cpu / ms->smp.cores) % ms->smp.clusters,
+                cpu % ms->smp.cores);
         }
+        qemu_fdt_add_path(ms->fdt, map_path);
+        qemu_fdt_setprop_phandle(ms->fdt, map_path, "cpu", cpu_path);
+
+        g_free(map_path);
+        g_free(cpu_path);
     }
 }
 
-- 
2.51.0



  parent reply	other threads:[~2025-10-17 13:20 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 01/20] hw/arm/virt: Remove deprecated virt-4.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 02/20] hw/arm/virt: Remove VirtMachineClass::no_ged field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 03/20] hw/arm/virt: Remove deprecated virt-4.2 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 04/20] hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 05/20] hw/arm/virt: Remove deprecated virt-5.0 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 06/20] hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 07/20] hw/arm/virt: Remove deprecated virt-5.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 08/20] hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 09/20] hw/arm/virt: Remove deprecated virt-5.2 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 10/20] hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 11/20] hw/arm/virt: Remove deprecated virt-6.0 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 12/20] hw/arm/virt: Remove deprecated virt-6.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 13/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_its field Philippe Mathieu-Daudé
2025-10-17 13:08 ` Philippe Mathieu-Daudé [this message]
2025-10-17 13:08 ` [PATCH 15/20] hw/arm/virt: Remove deprecated virt-6.2 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 16/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 17/20] hw/arm/virt: Remove deprecated virt-7.0 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 18/20] hw/arm/virt: Remove deprecated virt-7.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 19/20] hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 20/20] hw/arm/virt: Remove deprecated virt-7.2 machine Philippe Mathieu-Daudé
2025-10-17 13:18 ` [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Daniel P. Berrangé
2025-10-17 13:39   ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251017130821.58388-15-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=ajones@ventanamicro.com \
    --cc=anisinha@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=shannon.zhaosl@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).