Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug"

This reverts commit 2d6cfbaf17.

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>
This commit is contained in:
Igor Mammedov 2024-11-12 18:02:54 +01:00 committed by Michael S. Tsirkin
parent cb36e2573a
commit f2ba6ab621
2 changed files with 1 additions and 15 deletions

View File

@ -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 = {

View File

@ -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);