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
next prev 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).