aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2024-11-12 18:02:54 +0100
committerMichael S. Tsirkin <mst@redhat.com>2024-11-26 16:37:50 -0500
commitf2ba6ab6212b656179c4f4ce68ee74a500c409b0 (patch)
tree1bc17eda1f69bf4e43a5e2927813bf247e86e8c8
parentcb36e2573a02da2a4d95bae71e4d2f1a746d8ee2 (diff)
Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug"
This reverts commit 2d6cfbaf174b91dfa9a50065f7494634afb39c23. The patch is supposed to be part of ARM CPU hotplug series and has not value on its own without it. The series however is still in RFC stage and outside of scope 9.2 release. On top of that it introduces not needed callback that pokes directly into CPU state without any need for that. Instead properties and AML generator option should be used to configure static platform depended vCPU presence state. Drop the patch so that corrected version could be posted along with ARM CPU hotplug series and properly reviewed in relevant context. That also helps us to keep history cleaner with new patch being against original code vs a string of fixups on top of current mess. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20241112170258.2996640-4-imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/acpi/cpu.c15
-rw-r--r--include/hw/core/cpu.h1
2 files changed, 1 insertions, 15 deletions
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 9b03b4292e..5cb60ca8bc 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -233,17 +233,6 @@ void cpu_hotplug_hw_init(MemoryRegion *as, Object *owner,
memory_region_add_subregion(as, base_addr, &state->ctrl_reg);
}
-static bool should_remain_acpi_present(DeviceState *dev)
-{
- CPUClass *k = CPU_GET_CLASS(dev);
- /*
- * A system may contain CPUs that are always present on one die, NUMA node,
- * or socket, yet may be non-present on another simultaneously. Check from
- * architecture specific code.
- */
- return k->cpu_persistent_status && k->cpu_persistent_status(CPU(dev));
-}
-
static AcpiCpuStatus *get_cpu_status(CPUHotplugState *cpu_st, DeviceState *dev)
{
CPUClass *k = CPU_GET_CLASS(dev);
@@ -300,9 +289,7 @@ void acpi_cpu_unplug_cb(CPUHotplugState *cpu_st,
return;
}
- if (!should_remain_acpi_present(dev)) {
- cdev->cpu = NULL;
- }
+ cdev->cpu = NULL;
}
static const VMStateDescription vmstate_cpuhp_sts = {
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index e7de77dc6d..c3ca0babcb 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -158,7 +158,6 @@ struct CPUClass {
void (*dump_state)(CPUState *cpu, FILE *, int flags);
void (*query_cpu_fast)(CPUState *cpu, CpuInfoFast *value);
int64_t (*get_arch_id)(CPUState *cpu);
- bool (*cpu_persistent_status)(CPUState *cpu);
void (*set_pc)(CPUState *cpu, vaddr value);
vaddr (*get_pc)(CPUState *cpu);
int (*gdb_read_register)(CPUState *cpu, GByteArray *buf, int reg);