ppc/spapr: remove deprecated machine pseries-2.9
Commit 1392617d35
intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.9 specific code with this patch for now.
While at it, also remove the pre-2.10 migration hacks which now become
obsolete.
Suggested-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
parent
4ca656075d
commit
24ee9229fe
@ -335,22 +335,6 @@ static void icp_realize(DeviceState *dev, Error **errp)
|
||||
return;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* The way that pre_2_10_icp is handling is really, really hacky.
|
||||
* We used to have here this call:
|
||||
*
|
||||
* vmstate_register(NULL, icp->cs->cpu_index, &vmstate_icp_server, icp);
|
||||
*
|
||||
* But we were doing:
|
||||
* pre_2_10_vmstate_register_dummy_icp()
|
||||
* this vmstate_register()
|
||||
* pre_2_10_vmstate_unregister_dummy_icp()
|
||||
*
|
||||
* So for a short amount of time we had to vmstate entries with
|
||||
* the same name. This fixes it.
|
||||
*/
|
||||
vmstate_replace_hack_for_ppc(NULL, icp->cs->cpu_index,
|
||||
&vmstate_icp_server, icp);
|
||||
}
|
||||
|
||||
static void icp_unrealize(DeviceState *dev)
|
||||
|
104
hw/ppc/spapr.c
104
hw/ppc/spapr.c
@ -132,61 +132,6 @@ static bool spapr_is_thread0_in_vcore(SpaprMachineState *spapr,
|
||||
return spapr_get_vcpu_id(cpu) % spapr->vsmt == 0;
|
||||
}
|
||||
|
||||
static bool pre_2_10_vmstate_dummy_icp_needed(void *opaque)
|
||||
{
|
||||
/* Dummy entries correspond to unused ICPState objects in older QEMUs,
|
||||
* and newer QEMUs don't even have them. In both cases, we don't want
|
||||
* to send anything on the wire.
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
static const VMStateDescription pre_2_10_vmstate_dummy_icp = {
|
||||
/*
|
||||
* Hack ahead. We can't have two devices with the same name and
|
||||
* instance id. So I rename this to pass make check.
|
||||
* Real help from people who knows the hardware is needed.
|
||||
*/
|
||||
.name = "icp/server",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.needed = pre_2_10_vmstate_dummy_icp_needed,
|
||||
.fields = (const VMStateField[]) {
|
||||
VMSTATE_UNUSED(4), /* uint32_t xirr */
|
||||
VMSTATE_UNUSED(1), /* uint8_t pending_priority */
|
||||
VMSTATE_UNUSED(1), /* uint8_t mfrr */
|
||||
VMSTATE_END_OF_LIST()
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* See comment in hw/intc/xics.c:icp_realize()
|
||||
*
|
||||
* You have to remove vmstate_replace_hack_for_ppc() when you remove
|
||||
* the machine types that need the following function.
|
||||
*/
|
||||
static void pre_2_10_vmstate_register_dummy_icp(int i)
|
||||
{
|
||||
vmstate_register(NULL, i, &pre_2_10_vmstate_dummy_icp,
|
||||
(void *)(uintptr_t) i);
|
||||
}
|
||||
|
||||
/*
|
||||
* See comment in hw/intc/xics.c:icp_realize()
|
||||
*
|
||||
* You have to remove vmstate_replace_hack_for_ppc() when you remove
|
||||
* the machine types that need the following function.
|
||||
*/
|
||||
static void pre_2_10_vmstate_unregister_dummy_icp(int i)
|
||||
{
|
||||
/*
|
||||
* This used to be:
|
||||
*
|
||||
* vmstate_unregister(NULL, &pre_2_10_vmstate_dummy_icp,
|
||||
* (void *)(uintptr_t) i);
|
||||
*/
|
||||
}
|
||||
|
||||
int spapr_max_server_number(SpaprMachineState *spapr)
|
||||
{
|
||||
MachineState *ms = MACHINE(spapr);
|
||||
@ -2711,7 +2656,6 @@ static void spapr_init_cpus(SpaprMachineState *spapr)
|
||||
{
|
||||
MachineState *machine = MACHINE(spapr);
|
||||
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
||||
SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(machine);
|
||||
const char *type = spapr_get_cpu_core_type(machine->cpu_type);
|
||||
const CPUArchIdList *possible_cpus;
|
||||
unsigned int smp_cpus = machine->smp.cpus;
|
||||
@ -2740,15 +2684,6 @@ static void spapr_init_cpus(SpaprMachineState *spapr)
|
||||
boot_cores_nr = possible_cpus->len;
|
||||
}
|
||||
|
||||
if (smc->pre_2_10_has_unused_icps) {
|
||||
for (i = 0; i < spapr_max_server_number(spapr); i++) {
|
||||
/* Dummy entries get deregistered when real ICPState objects
|
||||
* are registered during CPU core hotplug.
|
||||
*/
|
||||
pre_2_10_vmstate_register_dummy_icp(i);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < possible_cpus->len; i++) {
|
||||
int core_id = i * smp_threads;
|
||||
|
||||
@ -3914,21 +3849,9 @@ void spapr_core_release(DeviceState *dev)
|
||||
static void spapr_core_unplug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
||||
{
|
||||
MachineState *ms = MACHINE(hotplug_dev);
|
||||
SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(ms);
|
||||
CPUCore *cc = CPU_CORE(dev);
|
||||
CPUArchId *core_slot = spapr_find_cpu_slot(ms, cc->core_id, NULL);
|
||||
|
||||
if (smc->pre_2_10_has_unused_icps) {
|
||||
SpaprCpuCore *sc = SPAPR_CPU_CORE(OBJECT(dev));
|
||||
int i;
|
||||
|
||||
for (i = 0; i < cc->nr_threads; i++) {
|
||||
CPUState *cs = CPU(sc->threads[i]);
|
||||
|
||||
pre_2_10_vmstate_register_dummy_icp(cs->cpu_index);
|
||||
}
|
||||
}
|
||||
|
||||
assert(core_slot);
|
||||
core_slot->cpu = NULL;
|
||||
qdev_unrealize(dev);
|
||||
@ -4009,7 +3932,6 @@ static void spapr_core_plug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
||||
{
|
||||
SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev));
|
||||
MachineClass *mc = MACHINE_GET_CLASS(spapr);
|
||||
SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
|
||||
SpaprCpuCore *core = SPAPR_CPU_CORE(OBJECT(dev));
|
||||
CPUCore *cc = CPU_CORE(dev);
|
||||
SpaprDrc *drc;
|
||||
@ -4059,12 +3981,6 @@ static void spapr_core_plug(HotplugHandler *hotplug_dev, DeviceState *dev)
|
||||
}
|
||||
}
|
||||
|
||||
if (smc->pre_2_10_has_unused_icps) {
|
||||
for (i = 0; i < cc->nr_threads; i++) {
|
||||
CPUState *cs = CPU(core->threads[i]);
|
||||
pre_2_10_vmstate_unregister_dummy_icp(cs->cpu_index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void spapr_core_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
|
||||
@ -5165,26 +5081,6 @@ static void spapr_machine_2_10_class_options(MachineClass *mc)
|
||||
|
||||
DEFINE_SPAPR_MACHINE(2, 10);
|
||||
|
||||
/*
|
||||
* pseries-2.9
|
||||
*/
|
||||
|
||||
static void spapr_machine_2_9_class_options(MachineClass *mc)
|
||||
{
|
||||
SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
|
||||
static GlobalProperty compat[] = {
|
||||
{ TYPE_POWERPC_CPU, "pre-2.10-migration", "on" },
|
||||
};
|
||||
|
||||
spapr_machine_2_10_class_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_2_9, hw_compat_2_9_len);
|
||||
compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
|
||||
smc->pre_2_10_has_unused_icps = true;
|
||||
smc->resize_hpt_default = SPAPR_RESIZE_HPT_DISABLED;
|
||||
}
|
||||
|
||||
DEFINE_SPAPR_MACHINE(2, 9);
|
||||
|
||||
static void spapr_machine_register_types(void)
|
||||
{
|
||||
type_register_static(&spapr_machine_info);
|
||||
|
@ -143,7 +143,6 @@ struct SpaprMachineClass {
|
||||
/*< public >*/
|
||||
bool dr_phb_enabled; /* enable dynamic-reconfig/hotplug of PHBs */
|
||||
bool update_dt_enabled; /* enable KVMPPC_H_UPDATE_DT */
|
||||
bool pre_2_10_has_unused_icps;
|
||||
bool legacy_irq_allocation;
|
||||
uint32_t nr_xirqs;
|
||||
bool broken_host_serial_model; /* present real host info to the guest */
|
||||
|
@ -860,25 +860,6 @@ static void vmstate_check(const VMStateDescription *vmsd)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* See comment in hw/intc/xics.c:icp_realize()
|
||||
*
|
||||
* This function can be removed when
|
||||
* pre_2_10_vmstate_register_dummy_icp() is removed.
|
||||
*/
|
||||
int vmstate_replace_hack_for_ppc(VMStateIf *obj, int instance_id,
|
||||
const VMStateDescription *vmsd,
|
||||
void *opaque)
|
||||
{
|
||||
SaveStateEntry *se = find_se(vmsd->name, instance_id);
|
||||
|
||||
if (se) {
|
||||
savevm_state_handler_remove(se);
|
||||
g_free(se->compat);
|
||||
g_free(se);
|
||||
}
|
||||
return vmstate_register(obj, instance_id, vmsd, opaque);
|
||||
}
|
||||
|
||||
int vmstate_register_with_alias_id(VMStateIf *obj, uint32_t instance_id,
|
||||
const VMStateDescription *vmsd,
|
||||
|
@ -1457,7 +1457,6 @@ struct ArchCPU {
|
||||
opc_handler_t *opcodes[PPC_CPU_OPCODES_LEN];
|
||||
|
||||
/* Fields related to migration compatibility hacks */
|
||||
bool pre_2_10_migration;
|
||||
bool pre_3_0_migration;
|
||||
int32_t mig_slb_nr;
|
||||
};
|
||||
|
@ -7452,8 +7452,6 @@ static void ppc_disas_set_info(CPUState *cs, disassemble_info *info)
|
||||
}
|
||||
|
||||
static Property ppc_cpu_properties[] = {
|
||||
DEFINE_PROP_BOOL("pre-2.10-migration", PowerPCCPU, pre_2_10_migration,
|
||||
false),
|
||||
DEFINE_PROP_BOOL("pre-3.0-migration", PowerPCCPU, pre_3_0_migration,
|
||||
false),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
|
@ -630,7 +630,7 @@ static bool compat_needed(void *opaque)
|
||||
PowerPCCPU *cpu = opaque;
|
||||
|
||||
assert(!(cpu->compat_pvr && !cpu->vhyp));
|
||||
return !cpu->pre_2_10_migration && cpu->compat_pvr != 0;
|
||||
return cpu->compat_pvr != 0;
|
||||
}
|
||||
|
||||
static const VMStateDescription vmstate_compat = {
|
||||
|
Loading…
Reference in New Issue
Block a user