* [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code
@ 2024-10-14 12:27 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 01/13] ppc/spapr: remove deprecated machine pseries-2.1 Harsh Prateek Bora
` (12 more replies)
0 siblings, 13 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
As per Qemu's deprecation policy [1], and the legacy pseries machines
being marked as deprecated in earlier commits, this patchset aims at
removing the respective code for machines which are now deprecated.
[1] https://www.qemu.org/docs/master/about/deprecated.html
v4: Removed hw_compat_2_{1,2,3}[_len] in patches 1,2,3 (Philippe)
Removed DEFINE_SPAPR_MACHINE_TAGGED in patch 12 (Cedric)
Updated version_id to 2 for vmstate_slb in patch 13 (Cedric)
Dropped removal of pseries-3.0 patch 14 (Cedric)
Added R-bys from Cedric in patch 3, 4 and 5
Patches awaiting R-bys: 12, 13.
v3: Addressed review comments from Cedric on v2 patchset
Removed some more pre-2.10 migration hacks in patch 9/14
Removed pseries-2.12 and pseries-3.10 also as due for removal.
v2: <20241001092910.1030913-1-harshpb@linux.ibm.com>
v1: <20240917060300.943496-1-harshpb@linux.ibm.com>
Harsh Prateek Bora (13):
ppc/spapr: remove deprecated machine pseries-2.1
ppc/spapr: remove deprecated machine pseries-2.2
ppc/spapr: remove deprecated machine pseries-2.3
ppc/spapr: remove deprecated machine pseries-2.4
ppc/spapr: remove deprecated machine pseries-2.5
ppc/spapr: remove deprecated machine pseries-2.6
ppc/spapr: remove deprecated machine pseries-2.7
ppc/spapr: remove deprecated machine pseries-2.8
ppc/spapr: remove deprecated machine pseries-2.9
ppc/spapr: remove deprecated machine pseries-2.10
ppc/spapr: remove deprecated machine pseries-2.11
ppc/spapr: remove deprecated machine pseries-2.12-sxxm
ppc/spapr: remove deprecated machine pseries-2.12
docs/about/deprecated.rst | 8 -
include/hw/boards.h | 9 -
include/hw/pci-host/spapr.h | 5 -
include/hw/ppc/spapr.h | 3 -
include/hw/ppc/spapr_cpu_core.h | 1 -
target/ppc/cpu.h | 10 -
hw/core/machine.c | 27 ---
hw/intc/xics.c | 16 --
hw/ppc/spapr.c | 387 +-------------------------------
hw/ppc/spapr_cpu_core.c | 12 +-
hw/ppc/spapr_pci.c | 92 +-------
migration/savevm.c | 19 --
target/ppc/cpu_init.c | 6 +-
target/ppc/machine.c | 72 +-----
14 files changed, 18 insertions(+), 649 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v4 01/13] ppc/spapr: remove deprecated machine pseries-2.1
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 02/13] ppc/spapr: remove deprecated machine pseries-2.2 Harsh Prateek Bora
` (11 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.1 specific code with this patch for now.
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>
---
include/hw/boards.h | 3 ---
hw/core/machine.c | 11 -----------
hw/ppc/spapr.c | 11 -----------
3 files changed, 25 deletions(-)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 5966069baa..44d19e1ffc 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -828,7 +828,4 @@ extern const size_t hw_compat_2_3_len;
extern GlobalProperty hw_compat_2_2[];
extern const size_t hw_compat_2_2_len;
-extern GlobalProperty hw_compat_2_1[];
-extern const size_t hw_compat_2_1_len;
-
#endif
diff --git a/hw/core/machine.c b/hw/core/machine.c
index adaba17eba..a41d1dbe26 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -297,17 +297,6 @@ const size_t hw_compat_2_3_len = G_N_ELEMENTS(hw_compat_2_3);
GlobalProperty hw_compat_2_2[] = {};
const size_t hw_compat_2_2_len = G_N_ELEMENTS(hw_compat_2_2);
-GlobalProperty hw_compat_2_1[] = {
- { "intel-hda", "old_msi_addr", "on" },
- { "VGA", "qemu-extended-regs", "off" },
- { "secondary-vga", "qemu-extended-regs", "off" },
- { "virtio-scsi-pci", "any_layout", "off" },
- { "usb-mouse", "usb_version", "1" },
- { "usb-kbd", "usb_version", "1" },
- { "virtio-pci", "virtio-pci-bus-master-bug-migration", "on" },
-};
-const size_t hw_compat_2_1_len = G_N_ELEMENTS(hw_compat_2_1);
-
MachineState *current_machine;
static char *machine_get_kernel(Object *obj, Error **errp)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 2c10a70a48..e9518ff8b3 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5381,17 +5381,6 @@ static void spapr_machine_2_2_class_options(MachineClass *mc)
}
DEFINE_SPAPR_MACHINE(2, 2);
-/*
- * pseries-2.1
- */
-
-static void spapr_machine_2_1_class_options(MachineClass *mc)
-{
- spapr_machine_2_2_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_2_1, hw_compat_2_1_len);
-}
-DEFINE_SPAPR_MACHINE(2, 1);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 02/13] ppc/spapr: remove deprecated machine pseries-2.2
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 01/13] ppc/spapr: remove deprecated machine pseries-2.1 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 03/13] ppc/spapr: remove deprecated machine pseries-2.3 Harsh Prateek Bora
` (10 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.2 specific code with this patch for now.
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>
---
include/hw/boards.h | 3 ---
hw/core/machine.c | 3 ---
hw/ppc/spapr.c | 17 -----------------
3 files changed, 23 deletions(-)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 44d19e1ffc..7e849bb30d 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -825,7 +825,4 @@ extern const size_t hw_compat_2_4_len;
extern GlobalProperty hw_compat_2_3[];
extern const size_t hw_compat_2_3_len;
-extern GlobalProperty hw_compat_2_2[];
-extern const size_t hw_compat_2_2_len;
-
#endif
diff --git a/hw/core/machine.c b/hw/core/machine.c
index a41d1dbe26..2bbfcd1ede 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -294,9 +294,6 @@ GlobalProperty hw_compat_2_3[] = {
};
const size_t hw_compat_2_3_len = G_N_ELEMENTS(hw_compat_2_3);
-GlobalProperty hw_compat_2_2[] = {};
-const size_t hw_compat_2_2_len = G_N_ELEMENTS(hw_compat_2_2);
-
MachineState *current_machine;
static char *machine_get_kernel(Object *obj, Error **errp)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index e9518ff8b3..34d655d0b3 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5364,23 +5364,6 @@ static void spapr_machine_2_3_class_options(MachineClass *mc)
}
DEFINE_SPAPR_MACHINE(2, 3);
-/*
- * pseries-2.2
- */
-
-static void spapr_machine_2_2_class_options(MachineClass *mc)
-{
- static GlobalProperty compat[] = {
- { TYPE_SPAPR_PCI_HOST_BRIDGE, "mem_win_size", "0x20000000" },
- };
-
- spapr_machine_2_3_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_2_2, hw_compat_2_2_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
- mc->default_machine_opts = "modern-hotplug-events=off,suppress-vmdesc=on";
-}
-DEFINE_SPAPR_MACHINE(2, 2);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 03/13] ppc/spapr: remove deprecated machine pseries-2.3
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 01/13] ppc/spapr: remove deprecated machine pseries-2.1 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 02/13] ppc/spapr: remove deprecated machine pseries-2.2 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 04/13] ppc/spapr: remove deprecated machine pseries-2.4 Harsh Prateek Bora
` (9 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.3 specific code with this patch for now.
While at it, also remove the dynamic-reconfiguration option which was
introduced to disable it by default for legacy machines until pseries-2.3.
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>
---
include/hw/boards.h | 3 ---
include/hw/pci-host/spapr.h | 1 -
hw/core/machine.c | 13 -------------
hw/ppc/spapr.c | 15 ---------------
hw/ppc/spapr_pci.c | 35 -----------------------------------
5 files changed, 67 deletions(-)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 7e849bb30d..eea592b720 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -822,7 +822,4 @@ extern const size_t hw_compat_2_5_len;
extern GlobalProperty hw_compat_2_4[];
extern const size_t hw_compat_2_4_len;
-extern GlobalProperty hw_compat_2_3[];
-extern const size_t hw_compat_2_3_len;
-
#endif
diff --git a/include/hw/pci-host/spapr.h b/include/hw/pci-host/spapr.h
index 3778aac27b..79187e80fd 100644
--- a/include/hw/pci-host/spapr.h
+++ b/include/hw/pci-host/spapr.h
@@ -53,7 +53,6 @@ struct SpaprPhbState {
uint32_t index;
uint64_t buid;
char *dtbusname;
- bool dr_enabled;
MemoryRegion memspace, iospace;
hwaddr mem_win_addr, mem_win_size, mem64_win_addr, mem64_win_size;
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 2bbfcd1ede..0f10b4f992 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -281,19 +281,6 @@ GlobalProperty hw_compat_2_4[] = {
};
const size_t hw_compat_2_4_len = G_N_ELEMENTS(hw_compat_2_4);
-GlobalProperty hw_compat_2_3[] = {
- { "virtio-blk-pci", "any_layout", "off" },
- { "virtio-balloon-pci", "any_layout", "off" },
- { "virtio-serial-pci", "any_layout", "off" },
- { "virtio-9p-pci", "any_layout", "off" },
- { "virtio-rng-pci", "any_layout", "off" },
- { TYPE_PCI_DEVICE, "x-pcie-lnksta-dllla", "off" },
- { "migration", "send-configuration", "off" },
- { "migration", "send-section-footer", "off" },
- { "migration", "store-global-state", "off" },
-};
-const size_t hw_compat_2_3_len = G_N_ELEMENTS(hw_compat_2_3);
-
MachineState *current_machine;
static char *machine_get_kernel(Object *obj, Error **errp)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 34d655d0b3..599a59910c 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5349,21 +5349,6 @@ static void spapr_machine_2_4_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 4);
-/*
- * pseries-2.3
- */
-
-static void spapr_machine_2_3_class_options(MachineClass *mc)
-{
- static GlobalProperty compat[] = {
- { "spapr-pci-host-bridge", "dynamic-reconfiguration", "off" },
- };
- spapr_machine_2_4_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_2_3, hw_compat_2_3_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
-}
-DEFINE_SPAPR_MACHINE(2, 3);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 5c0024bef9..8f1964ce52 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1237,10 +1237,6 @@ static void add_drcs(SpaprPhbState *phb, PCIBus *bus)
int i;
uint8_t chassis;
- if (!phb->dr_enabled) {
- return;
- }
-
chassis = chassis_from_bus(bus);
if (pci_bus_is_root(bus)) {
@@ -1260,10 +1256,6 @@ static void remove_drcs(SpaprPhbState *phb, PCIBus *bus)
int i;
uint8_t chassis;
- if (!phb->dr_enabled) {
- return;
- }
-
chassis = chassis_from_bus(bus);
for (i = PCI_SLOT_MAX * PCI_FUNC_MAX - 1; i >= 0; i--) {
@@ -1548,17 +1540,6 @@ static void spapr_pci_pre_plug(HotplugHandler *plug_handler,
PCIBus *bus = PCI_BUS(qdev_get_parent_bus(DEVICE(pdev)));
uint32_t slotnr = PCI_SLOT(pdev->devfn);
- if (!phb->dr_enabled) {
- /* if this is a hotplug operation initiated by the user
- * we need to let them know it's not enabled
- */
- if (plugged_dev->hotplugged) {
- error_setg(errp, "Bus '%s' does not support hotplugging",
- phb->parent_obj.bus->qbus.name);
- return;
- }
- }
-
if (IS_PCI_BRIDGE(plugged_dev)) {
if (!bridge_has_valid_chassis_nr(OBJECT(plugged_dev), errp)) {
return;
@@ -1591,14 +1572,6 @@ static void spapr_pci_plug(HotplugHandler *plug_handler,
SpaprDrc *drc = drc_from_dev(phb, pdev);
uint32_t slotnr = PCI_SLOT(pdev->devfn);
- /*
- * If DR is disabled we don't need to do anything in the case of
- * hotplug or coldplug callbacks.
- */
- if (!phb->dr_enabled) {
- return;
- }
-
g_assert(drc);
if (IS_PCI_BRIDGE(plugged_dev)) {
@@ -1673,12 +1646,6 @@ static void spapr_pci_unplug_request(HotplugHandler *plug_handler,
PCIDevice *pdev = PCI_DEVICE(plugged_dev);
SpaprDrc *drc = drc_from_dev(phb, pdev);
- if (!phb->dr_enabled) {
- error_setg(errp, "Bus '%s' does not support hotplugging",
- phb->parent_obj.bus->qbus.name);
- return;
- }
-
g_assert(drc);
g_assert(drc->dev == plugged_dev);
@@ -2089,8 +2056,6 @@ static Property spapr_phb_properties[] = {
SPAPR_PCI_MEM64_WIN_SIZE),
DEFINE_PROP_UINT64("io_win_size", SpaprPhbState, io_win_size,
SPAPR_PCI_IO_WIN_SIZE),
- DEFINE_PROP_BOOL("dynamic-reconfiguration", SpaprPhbState, dr_enabled,
- true),
/* Default DMA window is 0..1GB */
DEFINE_PROP_UINT64("dma_win_addr", SpaprPhbState, dma_win_addr, 0),
DEFINE_PROP_UINT64("dma_win_size", SpaprPhbState, dma_win_size, 0x40000000),
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 04/13] ppc/spapr: remove deprecated machine pseries-2.4
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (2 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 03/13] ppc/spapr: remove deprecated machine pseries-2.3 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 05/13] ppc/spapr: remove deprecated machine pseries-2.5 Harsh Prateek Bora
` (8 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.4 specific code with this patch for now.
While at it, also remove SpaprMachineClass::dr_lmb_enabled which is
now turned useless.
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>
---
include/hw/ppc/spapr.h | 1 -
hw/ppc/spapr.c | 38 ++++----------------------------------
2 files changed, 4 insertions(+), 35 deletions(-)
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index f6de3e9972..1821ef96c7 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -141,7 +141,6 @@ struct SpaprMachineClass {
MachineClass parent_class;
/*< public >*/
- bool dr_lmb_enabled; /* enable dynamic-reconfig/hotplug of LMBs */
bool dr_phb_enabled; /* enable dynamic-reconfig/hotplug of PHBs */
bool update_dt_enabled; /* enable KVMPPC_H_UPDATE_DT */
bool use_ohci_by_default; /* use USB-OHCI instead of XHCI */
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 599a59910c..4d7705c89f 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -682,7 +682,6 @@ static int spapr_dt_dynamic_reconfiguration_memory(SpaprMachineState *spapr,
static int spapr_dt_memory(SpaprMachineState *spapr, void *fdt)
{
MachineState *machine = MACHINE(spapr);
- SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr);
hwaddr mem_start, node_size;
int i, nb_nodes = machine->numa_state->num_nodes;
NodeInfo *nodes = machine->numa_state->nodes;
@@ -724,7 +723,6 @@ static int spapr_dt_memory(SpaprMachineState *spapr, void *fdt)
if (spapr_ovec_test(spapr->ov5_cas, OV5_DRCONF_MEMORY)) {
int ret;
- g_assert(smc->dr_lmb_enabled);
ret = spapr_dt_dynamic_reconfiguration_memory(spapr, fdt);
if (ret) {
return ret;
@@ -1307,9 +1305,7 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool reset, size_t space)
spapr_dt_cpus(fdt, spapr);
/* ibm,drc-indexes and friends */
- if (smc->dr_lmb_enabled) {
- root_drc_type_mask |= SPAPR_DR_CONNECTOR_TYPE_LMB;
- }
+ root_drc_type_mask |= SPAPR_DR_CONNECTOR_TYPE_LMB;
if (smc->dr_phb_enabled) {
root_drc_type_mask |= SPAPR_DR_CONNECTOR_TYPE_PHB;
}
@@ -2929,10 +2925,8 @@ static void spapr_machine_init(MachineState *machine)
spapr->ov5 = spapr_ovec_new();
spapr->ov5_cas = spapr_ovec_new();
- if (smc->dr_lmb_enabled) {
- spapr_ovec_set(spapr->ov5, OV5_DRCONF_MEMORY);
- spapr_validate_node_memory(machine, &error_fatal);
- }
+ spapr_ovec_set(spapr->ov5, OV5_DRCONF_MEMORY);
+ spapr_validate_node_memory(machine, &error_fatal);
spapr_ovec_set(spapr->ov5, OV5_FORM1_AFFINITY);
@@ -3016,9 +3010,7 @@ static void spapr_machine_init(MachineState *machine)
machine_memory_devices_init(machine, device_mem_base, device_mem_size);
}
- if (smc->dr_lmb_enabled) {
- spapr_create_lmb_dr_connectors(spapr);
- }
+ spapr_create_lmb_dr_connectors(spapr);
if (mc->nvdimm_supported) {
spapr_create_nvdimm_dr_connectors(spapr);
@@ -3662,7 +3654,6 @@ static void spapr_memory_plug(HotplugHandler *hotplug_dev, DeviceState *dev)
static void spapr_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
Error **errp)
{
- const SpaprMachineClass *smc = SPAPR_MACHINE_GET_CLASS(hotplug_dev);
SpaprMachineState *spapr = SPAPR_MACHINE(hotplug_dev);
bool is_nvdimm = object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM);
PCDIMMDevice *dimm = PC_DIMM(dev);
@@ -3671,11 +3662,6 @@ static void spapr_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
Object *memdev;
hwaddr pagesize;
- if (!smc->dr_lmb_enabled) {
- error_setg(errp, "Memory hotplug not supported for this machine");
- return;
- }
-
size = memory_device_get_region_size(MEMORY_DEVICE(dimm), &local_err);
if (local_err) {
error_propagate(errp, local_err);
@@ -4713,7 +4699,6 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data)
hc->unplug_request = spapr_machine_device_unplug_request;
hc->unplug = spapr_machine_device_unplug;
- smc->dr_lmb_enabled = true;
smc->update_dt_enabled = true;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power10_v2.0");
mc->has_hotpluggable_cpus = true;
@@ -5334,21 +5319,6 @@ static void spapr_machine_2_5_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 5);
-/*
- * pseries-2.4
- */
-
-static void spapr_machine_2_4_class_options(MachineClass *mc)
-{
- SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
-
- spapr_machine_2_5_class_options(mc);
- smc->dr_lmb_enabled = false;
- compat_props_add(mc->compat_props, hw_compat_2_4, hw_compat_2_4_len);
-}
-
-DEFINE_SPAPR_MACHINE(2, 4);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 05/13] ppc/spapr: remove deprecated machine pseries-2.5
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (3 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 04/13] ppc/spapr: remove deprecated machine pseries-2.4 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 06/13] ppc/spapr: remove deprecated machine pseries-2.6 Harsh Prateek Bora
` (7 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.5 specific code with this patch for now.
Also drop sPAPRMachineClass::use_ohci_by_default which is now useless.
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>
---
include/hw/ppc/spapr.h | 1 -
hw/ppc/spapr.c | 25 +------------------------
2 files changed, 1 insertion(+), 25 deletions(-)
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 1821ef96c7..6e9e62386c 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -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 use_ohci_by_default; /* use USB-OHCI instead of XHCI */
bool pre_2_10_has_unused_icps;
bool legacy_irq_allocation;
uint32_t nr_xirqs;
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 4d7705c89f..f63843d107 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3070,11 +3070,7 @@ static void spapr_machine_init(MachineState *machine)
}
if (machine->usb) {
- if (smc->use_ohci_by_default) {
- pci_create_simple(phb->bus, -1, "pci-ohci");
- } else {
- pci_create_simple(phb->bus, -1, "nec-usb-xhci");
- }
+ pci_create_simple(phb->bus, -1, "nec-usb-xhci");
if (has_vga) {
USBBus *usb_bus;
@@ -5300,25 +5296,6 @@ static void spapr_machine_2_6_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 6);
-/*
- * pseries-2.5
- */
-
-static void spapr_machine_2_5_class_options(MachineClass *mc)
-{
- SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
- static GlobalProperty compat[] = {
- { "spapr-vlan", "use-rx-buffer-pools", "off" },
- };
-
- spapr_machine_2_6_class_options(mc);
- smc->use_ohci_by_default = true;
- compat_props_add(mc->compat_props, hw_compat_2_5, hw_compat_2_5_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
-}
-
-DEFINE_SPAPR_MACHINE(2, 5);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 06/13] ppc/spapr: remove deprecated machine pseries-2.6
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (4 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 05/13] ppc/spapr: remove deprecated machine pseries-2.5 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 07/13] ppc/spapr: remove deprecated machine pseries-2.7 Harsh Prateek Bora
` (6 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.6 specific code with this patch for now.
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>
---
hw/ppc/spapr.c | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f63843d107..a9c988b8f6 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5278,24 +5278,6 @@ static void spapr_machine_2_7_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 7);
-/*
- * pseries-2.6
- */
-
-static void spapr_machine_2_6_class_options(MachineClass *mc)
-{
- static GlobalProperty compat[] = {
- { TYPE_SPAPR_PCI_HOST_BRIDGE, "ddw", "off" },
- };
-
- spapr_machine_2_7_class_options(mc);
- mc->has_hotpluggable_cpus = false;
- compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
-}
-
-DEFINE_SPAPR_MACHINE(2, 6);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 07/13] ppc/spapr: remove deprecated machine pseries-2.7
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (5 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 06/13] ppc/spapr: remove deprecated machine pseries-2.6 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 08/13] ppc/spapr: remove deprecated machine pseries-2.8 Harsh Prateek Bora
` (5 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.7 specific code with this patch for now.
While at it, also remove pre-2.8-migration and pci/mmio hacks introduced
for backward compatibility.
Suggested-by: Cédric Le Goater <clg@kaod.org>
Acked-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
include/hw/pci-host/spapr.h | 4 --
target/ppc/cpu.h | 5 ---
hw/ppc/spapr.c | 75 -------------------------------------
hw/ppc/spapr_pci.c | 57 ++++------------------------
target/ppc/cpu_init.c | 1 -
target/ppc/machine.c | 52 -------------------------
6 files changed, 7 insertions(+), 187 deletions(-)
diff --git a/include/hw/pci-host/spapr.h b/include/hw/pci-host/spapr.h
index 79187e80fd..0db87f1281 100644
--- a/include/hw/pci-host/spapr.h
+++ b/include/hw/pci-host/spapr.h
@@ -83,10 +83,6 @@ struct SpaprPhbState {
bool pcie_ecs; /* Allow access to PCIe extended config space? */
/* Fields for migration compatibility hacks */
- bool pre_2_8_migration;
- uint32_t mig_liobn;
- hwaddr mig_mem_win_addr, mig_mem_win_size;
- hwaddr mig_io_win_addr, mig_io_win_size;
bool pre_5_1_assoc;
};
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 321ed2da75..cab4a46fc1 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1456,11 +1456,6 @@ struct ArchCPU {
opc_handler_t *opcodes[PPC_CPU_OPCODES_LEN];
/* Fields related to migration compatibility hacks */
- bool pre_2_8_migration;
- target_ulong mig_msr_mask;
- uint64_t mig_insns_flags;
- uint64_t mig_insns_flags2;
- uint32_t mig_nb_BATs;
bool pre_2_10_migration;
bool pre_3_0_migration;
int32_t mig_slb_nr;
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index a9c988b8f6..c89ab89b97 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5203,81 +5203,6 @@ static void spapr_machine_2_8_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 8);
-/*
- * pseries-2.7
- */
-
-static bool phb_placement_2_7(SpaprMachineState *spapr, uint32_t index,
- uint64_t *buid, hwaddr *pio,
- hwaddr *mmio32, hwaddr *mmio64,
- unsigned n_dma, uint32_t *liobns, Error **errp)
-{
- /* Legacy PHB placement for pseries-2.7 and earlier machine types */
- const uint64_t base_buid = 0x800000020000000ULL;
- const hwaddr phb_spacing = 0x1000000000ULL; /* 64 GiB */
- const hwaddr mmio_offset = 0xa0000000; /* 2 GiB + 512 MiB */
- const hwaddr pio_offset = 0x80000000; /* 2 GiB */
- const uint32_t max_index = 255;
- const hwaddr phb0_alignment = 0x10000000000ULL; /* 1 TiB */
-
- uint64_t ram_top = MACHINE(spapr)->ram_size;
- hwaddr phb0_base, phb_base;
- int i;
-
- /* Do we have device memory? */
- if (MACHINE(spapr)->device_memory) {
- /* Can't just use maxram_size, because there may be an
- * alignment gap between normal and device memory regions
- */
- ram_top = MACHINE(spapr)->device_memory->base +
- memory_region_size(&MACHINE(spapr)->device_memory->mr);
- }
-
- phb0_base = QEMU_ALIGN_UP(ram_top, phb0_alignment);
-
- if (index > max_index) {
- error_setg(errp, "\"index\" for PAPR PHB is too large (max %u)",
- max_index);
- return false;
- }
-
- *buid = base_buid + index;
- for (i = 0; i < n_dma; ++i) {
- liobns[i] = SPAPR_PCI_LIOBN(index, i);
- }
-
- phb_base = phb0_base + index * phb_spacing;
- *pio = phb_base + pio_offset;
- *mmio32 = phb_base + mmio_offset;
- /*
- * We don't set the 64-bit MMIO window, relying on the PHB's
- * fallback behaviour of automatically splitting a large "32-bit"
- * window into contiguous 32-bit and 64-bit windows
- */
-
- return true;
-}
-
-static void spapr_machine_2_7_class_options(MachineClass *mc)
-{
- SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
- static GlobalProperty compat[] = {
- { TYPE_SPAPR_PCI_HOST_BRIDGE, "mem_win_size", "0xf80000000", },
- { TYPE_SPAPR_PCI_HOST_BRIDGE, "mem64_win_size", "0", },
- { TYPE_POWERPC_CPU, "pre-2.8-migration", "on", },
- { TYPE_SPAPR_PCI_HOST_BRIDGE, "pre-2.8-migration", "on", },
- };
-
- spapr_machine_2_8_class_options(mc);
- mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power7_v2.3");
- mc->default_machine_opts = "modern-hotplug-events=off";
- compat_props_add(mc->compat_props, hw_compat_2_7, hw_compat_2_7_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
- smc->phb_placement = phb_placement_2_7;
-}
-
-DEFINE_SPAPR_MACHINE(2, 7);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 8f1964ce52..7e24084673 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1814,30 +1814,15 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp)
assert(sphb->index != (uint32_t)-1); /* checked in spapr_phb_pre_plug() */
- if (sphb->mem64_win_size != 0) {
- if (sphb->mem_win_size > SPAPR_PCI_MEM32_WIN_SIZE) {
- error_setg(errp, "32-bit memory window of size 0x%"HWADDR_PRIx
- " (max 2 GiB)", sphb->mem_win_size);
- return;
- }
-
- /* 64-bit window defaults to identity mapping */
- sphb->mem64_win_pciaddr = sphb->mem64_win_addr;
- } else if (sphb->mem_win_size > SPAPR_PCI_MEM32_WIN_SIZE) {
- /*
- * For compatibility with old configuration, if no 64-bit MMIO
- * window is specified, but the ordinary (32-bit) memory
- * window is specified as > 2GiB, we treat it as a 2GiB 32-bit
- * window, with a 64-bit MMIO window following on immediately
- * afterwards
- */
- sphb->mem64_win_size = sphb->mem_win_size - SPAPR_PCI_MEM32_WIN_SIZE;
- sphb->mem64_win_addr = sphb->mem_win_addr + SPAPR_PCI_MEM32_WIN_SIZE;
- sphb->mem64_win_pciaddr =
- SPAPR_PCI_MEM_WIN_BUS_OFFSET + SPAPR_PCI_MEM32_WIN_SIZE;
- sphb->mem_win_size = SPAPR_PCI_MEM32_WIN_SIZE;
+ if (sphb->mem_win_size > SPAPR_PCI_MEM32_WIN_SIZE) {
+ error_setg(errp, "32-bit memory window of size 0x%"HWADDR_PRIx
+ " (max 2 GiB)", sphb->mem_win_size);
+ return;
}
+ /* 64-bit window defaults to identity mapping */
+ sphb->mem64_win_pciaddr = sphb->mem64_win_addr;
+
if (spapr_pci_find_phb(spapr, sphb->buid)) {
SpaprPhbState *s;
@@ -2066,8 +2051,6 @@ static Property spapr_phb_properties[] = {
(1ULL << 12) | (1ULL << 16)
| (1ULL << 21) | (1ULL << 24)),
DEFINE_PROP_UINT32("numa_node", SpaprPhbState, numa_node, -1),
- DEFINE_PROP_BOOL("pre-2.8-migration", SpaprPhbState,
- pre_2_8_migration, false),
DEFINE_PROP_BOOL("pcie-extended-configuration-space", SpaprPhbState,
pcie_ecs, true),
DEFINE_PROP_BOOL("pre-5.1-associativity", SpaprPhbState,
@@ -2105,20 +2088,6 @@ static int spapr_pci_pre_save(void *opaque)
gpointer key, value;
int i;
- if (sphb->pre_2_8_migration) {
- sphb->mig_liobn = sphb->dma_liobn[0];
- sphb->mig_mem_win_addr = sphb->mem_win_addr;
- sphb->mig_mem_win_size = sphb->mem_win_size;
- sphb->mig_io_win_addr = sphb->io_win_addr;
- sphb->mig_io_win_size = sphb->io_win_size;
-
- if ((sphb->mem64_win_size != 0)
- && (sphb->mem64_win_addr
- == (sphb->mem_win_addr + sphb->mem_win_size))) {
- sphb->mig_mem_win_size += sphb->mem64_win_size;
- }
- }
-
g_free(sphb->msi_devs);
sphb->msi_devs = NULL;
sphb->msi_devs_num = g_hash_table_size(sphb->msi);
@@ -2165,13 +2134,6 @@ static int spapr_pci_post_load(void *opaque, int version_id)
return 0;
}
-static bool pre_2_8_migration(void *opaque, int version_id)
-{
- SpaprPhbState *sphb = opaque;
-
- return sphb->pre_2_8_migration;
-}
-
static const VMStateDescription vmstate_spapr_pci = {
.name = "spapr_pci",
.version_id = 2,
@@ -2181,11 +2143,6 @@ static const VMStateDescription vmstate_spapr_pci = {
.post_load = spapr_pci_post_load,
.fields = (const VMStateField[]) {
VMSTATE_UINT64_EQUAL(buid, SpaprPhbState, NULL),
- VMSTATE_UINT32_TEST(mig_liobn, SpaprPhbState, pre_2_8_migration),
- VMSTATE_UINT64_TEST(mig_mem_win_addr, SpaprPhbState, pre_2_8_migration),
- VMSTATE_UINT64_TEST(mig_mem_win_size, SpaprPhbState, pre_2_8_migration),
- VMSTATE_UINT64_TEST(mig_io_win_addr, SpaprPhbState, pre_2_8_migration),
- VMSTATE_UINT64_TEST(mig_io_win_size, SpaprPhbState, pre_2_8_migration),
VMSTATE_STRUCT_ARRAY(lsi_table, SpaprPhbState, PCI_NUM_PINS, 0,
vmstate_spapr_pci_lsi, SpaprPciLsi),
VMSTATE_INT32(msi_devs_num, SpaprPhbState),
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index 23881d09e9..7768392986 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -7452,7 +7452,6 @@ static void ppc_disas_set_info(CPUState *cs, disassemble_info *info)
}
static Property ppc_cpu_properties[] = {
- DEFINE_PROP_BOOL("pre-2.8-migration", PowerPCCPU, pre_2_8_migration, false),
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,
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index d433fd45fc..21bed7c7c8 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -118,13 +118,6 @@ static const VMStateInfo vmstate_info_vsr = {
#define VMSTATE_VSR_ARRAY(_f, _s, _n) \
VMSTATE_VSR_ARRAY_V(_f, _s, _n, 0)
-static bool cpu_pre_2_8_migration(void *opaque, int version_id)
-{
- PowerPCCPU *cpu = opaque;
-
- return cpu->pre_2_8_migration;
-}
-
#if defined(TARGET_PPC64)
static bool cpu_pre_3_0_migration(void *opaque, int version_id)
{
@@ -139,22 +132,6 @@ static int cpu_pre_save(void *opaque)
PowerPCCPU *cpu = opaque;
CPUPPCState *env = &cpu->env;
int i;
- uint64_t insns_compat_mask =
- PPC_INSNS_BASE | PPC_ISEL | PPC_STRING | PPC_MFTB
- | PPC_FLOAT | PPC_FLOAT_FSEL | PPC_FLOAT_FRES
- | PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE | PPC_FLOAT_FRSQRTES
- | PPC_FLOAT_STFIWX | PPC_FLOAT_EXT
- | PPC_CACHE | PPC_CACHE_ICBI | PPC_CACHE_DCBZ
- | PPC_MEM_SYNC | PPC_MEM_EIEIO | PPC_MEM_TLBIE | PPC_MEM_TLBSYNC
- | PPC_64B | PPC_64BX | PPC_ALTIVEC
- | PPC_SEGMENT_64B | PPC_SLBI | PPC_POPCNTB | PPC_POPCNTWD;
- uint64_t insns_compat_mask2 = PPC2_VSX | PPC2_VSX207 | PPC2_DFP | PPC2_DBRX
- | PPC2_PERM_ISA206 | PPC2_DIVE_ISA206
- | PPC2_ATOMIC_ISA206 | PPC2_FP_CVT_ISA206
- | PPC2_FP_TST_ISA206 | PPC2_BCTAR_ISA207
- | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207
- | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | PPC2_TM
- | PPC2_MEM_LWSYNC;
env->spr[SPR_LR] = env->lr;
env->spr[SPR_CTR] = env->ctr;
@@ -177,29 +154,6 @@ static int cpu_pre_save(void *opaque)
env->spr[SPR_IBAT4U + 2 * i + 1] = env->IBAT[1][i + 4];
}
- /* Hacks for migration compatibility between 2.6, 2.7 & 2.8 */
- if (cpu->pre_2_8_migration) {
- /*
- * Mask out bits that got added to msr_mask since the versions
- * which stupidly included it in the migration stream.
- */
- target_ulong metamask = 0
-#if defined(TARGET_PPC64)
- | (1ULL << MSR_TS0)
- | (1ULL << MSR_TS1)
-#endif
- ;
- cpu->mig_msr_mask = env->msr_mask & ~metamask;
- cpu->mig_insns_flags = env->insns_flags & insns_compat_mask;
- /*
- * CPU models supported by old machines all have
- * PPC_MEM_TLBIE, so we set it unconditionally to allow
- * backward migration from a POWER9 host to a POWER8 host.
- */
- cpu->mig_insns_flags |= PPC_MEM_TLBIE;
- cpu->mig_insns_flags2 = env->insns_flags2 & insns_compat_mask2;
- cpu->mig_nb_BATs = env->nb_BATs;
- }
if (cpu->pre_3_0_migration) {
if (cpu->hash64_opts) {
cpu->mig_slb_nr = cpu->hash64_opts->slb_size;
@@ -760,12 +714,6 @@ const VMStateDescription vmstate_ppc_cpu = {
/* Backward compatible internal state */
VMSTATE_UINTTL(env.hflags_compat_nmsr, PowerPCCPU),
- /* Sanity checking */
- VMSTATE_UINTTL_TEST(mig_msr_mask, PowerPCCPU, cpu_pre_2_8_migration),
- VMSTATE_UINT64_TEST(mig_insns_flags, PowerPCCPU, cpu_pre_2_8_migration),
- VMSTATE_UINT64_TEST(mig_insns_flags2, PowerPCCPU,
- cpu_pre_2_8_migration),
- VMSTATE_UINT32_TEST(mig_nb_BATs, PowerPCCPU, cpu_pre_2_8_migration),
VMSTATE_END_OF_LIST()
},
.subsections = (const VMStateDescription * const []) {
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 08/13] ppc/spapr: remove deprecated machine pseries-2.8
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (6 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 07/13] ppc/spapr: remove deprecated machine pseries-2.7 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 09/13] ppc/spapr: remove deprecated machine pseries-2.9 Harsh Prateek Bora
` (4 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.8 specific code with this patch for now.
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>
---
hw/ppc/spapr.c | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index c89ab89b97..93decfcbeb 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5185,24 +5185,6 @@ static void spapr_machine_2_9_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 9);
-/*
- * pseries-2.8
- */
-
-static void spapr_machine_2_8_class_options(MachineClass *mc)
-{
- static GlobalProperty compat[] = {
- { TYPE_SPAPR_PCI_HOST_BRIDGE, "pcie-extended-configuration-space", "off" },
- };
-
- spapr_machine_2_9_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_2_8, hw_compat_2_8_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
- mc->numa_mem_align_shift = 23;
-}
-
-DEFINE_SPAPR_MACHINE(2, 8);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 09/13] ppc/spapr: remove deprecated machine pseries-2.9
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (7 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 08/13] ppc/spapr: remove deprecated machine pseries-2.8 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 10/13] ppc/spapr: remove deprecated machine pseries-2.10 Harsh Prateek Bora
` (3 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 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>
---
include/hw/ppc/spapr.h | 1 -
target/ppc/cpu.h | 1 -
hw/intc/xics.c | 16 -------
hw/ppc/spapr.c | 104 -----------------------------------------
migration/savevm.c | 19 --------
target/ppc/cpu_init.c | 2 -
target/ppc/machine.c | 2 +-
7 files changed, 1 insertion(+), 144 deletions(-)
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
index 6e9e62386c..af4aa1cb0f 100644
--- a/include/hw/ppc/spapr.h
+++ b/include/hw/ppc/spapr.h
@@ -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 */
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index cab4a46fc1..74a0ab768d 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1456,7 +1456,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;
};
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index 6f4d5271ea..e893363dc9 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -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)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 93decfcbeb..14a1314af6 100644
--- a/hw/ppc/spapr.c
+++ b/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);
diff --git a/migration/savevm.c b/migration/savevm.c
index 7e1e27182a..839a34402b 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -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,
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index 7768392986..39c19e6674 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -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(),
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index 21bed7c7c8..47495b68b1 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -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 = {
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 10/13] ppc/spapr: remove deprecated machine pseries-2.10
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (8 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 09/13] ppc/spapr: remove deprecated machine pseries-2.9 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 11/13] ppc/spapr: remove deprecated machine pseries-2.11 Harsh Prateek Bora
` (2 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.10 specific code with this patch for now.
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>
---
hw/ppc/spapr.c | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 14a1314af6..4c76d2841c 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5069,18 +5069,6 @@ static void spapr_machine_2_11_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 11);
-/*
- * pseries-2.10
- */
-
-static void spapr_machine_2_10_class_options(MachineClass *mc)
-{
- spapr_machine_2_11_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_2_10, hw_compat_2_10_len);
-}
-
-DEFINE_SPAPR_MACHINE(2, 10);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 11/13] ppc/spapr: remove deprecated machine pseries-2.11
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (9 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 10/13] ppc/spapr: remove deprecated machine pseries-2.10 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 12/13] ppc/spapr: remove deprecated machine pseries-2.12-sxxm Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 13/13] ppc/spapr: remove deprecated machine pseries-2.12 Harsh Prateek Bora
12 siblings, 0 replies; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 1392617d3576 intended to tag pseries-2.1 - 2.11 machines as
deprecated with reasons mentioned in its commit log.
Removing pseries-2.11 specific code with this patch.
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>
---
hw/ppc/spapr.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 4c76d2841c..faf88a177b 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5054,21 +5054,6 @@ static void spapr_machine_2_12_sxxm_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE_TAGGED(2, 12, sxxm);
-/*
- * pseries-2.11
- */
-
-static void spapr_machine_2_11_class_options(MachineClass *mc)
-{
- SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
-
- spapr_machine_2_12_class_options(mc);
- smc->default_caps.caps[SPAPR_CAP_HTM] = SPAPR_CAP_ON;
- compat_props_add(mc->compat_props, hw_compat_2_11, hw_compat_2_11_len);
-}
-
-DEFINE_SPAPR_MACHINE(2, 11);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 12/13] ppc/spapr: remove deprecated machine pseries-2.12-sxxm
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (10 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 11/13] ppc/spapr: remove deprecated machine pseries-2.11 Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-15 7:30 ` Cédric Le Goater
2024-10-14 12:27 ` [PATCH v4 13/13] ppc/spapr: remove deprecated machine pseries-2.12 Harsh Prateek Bora
12 siblings, 1 reply; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 0cac0f1b964 marked pseries-2.12 machines as deprecated
with reasons mentioned in its commit log.
Removing pseries-2.12-sxxm specific code with this patch.
Suggested-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
hw/ppc/spapr.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index faf88a177b..aba0ad26f1 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4731,8 +4731,6 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE_IMPL(true, major, minor)
#define DEFINE_SPAPR_MACHINE(major, minor) \
DEFINE_SPAPR_MACHINE_IMPL(false, major, minor)
-#define DEFINE_SPAPR_MACHINE_TAGGED(major, minor, tag) \
- DEFINE_SPAPR_MACHINE_IMPL(false, major, minor, _, tag)
/*
* pseries-9.2
@@ -5042,18 +5040,6 @@ static void spapr_machine_2_12_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2, 12);
-static void spapr_machine_2_12_sxxm_class_options(MachineClass *mc)
-{
- SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
-
- spapr_machine_2_12_class_options(mc);
- smc->default_caps.caps[SPAPR_CAP_CFPC] = SPAPR_CAP_WORKAROUND;
- smc->default_caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_WORKAROUND;
- smc->default_caps.caps[SPAPR_CAP_IBS] = SPAPR_CAP_FIXED_CCD;
-}
-
-DEFINE_SPAPR_MACHINE_TAGGED(2, 12, sxxm);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 13/13] ppc/spapr: remove deprecated machine pseries-2.12
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
` (11 preceding siblings ...)
2024-10-14 12:27 ` [PATCH v4 12/13] ppc/spapr: remove deprecated machine pseries-2.12-sxxm Harsh Prateek Bora
@ 2024-10-14 12:27 ` Harsh Prateek Bora
2024-10-15 7:31 ` Cédric Le Goater
12 siblings, 1 reply; 16+ messages in thread
From: Harsh Prateek Bora @ 2024-10-14 12:27 UTC (permalink / raw)
To: qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413, clg
Commit 0cac0f1b964 marked pseries-2.12 machines as deprecated
with reasons mentioned in its commit log.
Removing pseries-2.12 specific code with this patch.
While at it, also remove pre-3.0-migration hacks introduced for backward
compatibility which are now turned useless.
Suggested-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
---
docs/about/deprecated.rst | 8 --------
include/hw/ppc/spapr_cpu_core.h | 1 -
target/ppc/cpu.h | 4 ----
hw/ppc/spapr.c | 25 -------------------------
hw/ppc/spapr_cpu_core.c | 12 +++---------
target/ppc/cpu_init.c | 3 +--
target/ppc/machine.c | 18 +-----------------
7 files changed, 5 insertions(+), 66 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 48b230b0a0..3b312a5de2 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -243,14 +243,6 @@ These old machine types are quite neglected nowadays and thus might have
various pitfalls with regards to live migration. Use a newer machine type
instead.
-``pseries-2.1`` up to ``pseries-2.12`` (since 9.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Older pseries machines before version 3.0 have undergone many changes
-to correct issues, mostly regarding migration compatibility. These are
-no longer maintained and removing them will make the code easier to
-read and maintain. Use versions 3.0 and above as a replacement.
-
PPC 405 ``ref405ep`` machine (since 9.1)
''''''''''''''''''''''''''''''''''''''''
diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_core.h
index 69a52e39b8..68f7083483 100644
--- a/include/hw/ppc/spapr_cpu_core.h
+++ b/include/hw/ppc/spapr_cpu_core.h
@@ -28,7 +28,6 @@ struct SpaprCpuCore {
/*< public >*/
PowerPCCPU **threads;
int node_id;
- bool pre_3_0_migration; /* older machine don't know about SpaprCpuState */
};
struct SpaprCpuCoreClass {
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 74a0ab768d..506c8c825c 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -1454,10 +1454,6 @@ struct ArchCPU {
/* Those resources are used only during code translation */
/* opcode handlers */
opc_handler_t *opcodes[PPC_CPU_OPCODES_LEN];
-
- /* Fields related to migration compatibility hacks */
- bool pre_3_0_migration;
- int32_t mig_slb_nr;
};
/**
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index aba0ad26f1..5c02037c56 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5015,31 +5015,6 @@ static void spapr_machine_3_0_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(3, 0);
-/*
- * pseries-2.12
- */
-static void spapr_machine_2_12_class_options(MachineClass *mc)
-{
- SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
- static GlobalProperty compat[] = {
- { TYPE_POWERPC_CPU, "pre-3.0-migration", "on" },
- { TYPE_SPAPR_CPU_CORE, "pre-3.0-migration", "on" },
- };
-
- spapr_machine_3_0_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_2_12, hw_compat_2_12_len);
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
-
- /* We depend on kvm_enabled() to choose a default value for the
- * hpt-max-page-size capability. Of course we can't do it here
- * because this is too early and the HW accelerator isn't initialized
- * yet. Postpone this to machine init (see default_caps_with_cpu()).
- */
- smc->default_caps.caps[SPAPR_CAP_HPT_MAXPAGESIZE] = 0;
-}
-
-DEFINE_SPAPR_MACHINE(2, 12);
-
static void spapr_machine_register_types(void)
{
type_register_static(&spapr_machine_info);
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 4642245168..1a84345f36 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -197,9 +197,7 @@ static void spapr_unrealize_vcpu(PowerPCCPU *cpu, SpaprCpuCore *sc)
{
CPUPPCState *env = &cpu->env;
- if (!sc->pre_3_0_migration) {
- vmstate_unregister(NULL, &vmstate_spapr_cpu_state, cpu->machine_data);
- }
+ vmstate_unregister(NULL, &vmstate_spapr_cpu_state, cpu->machine_data);
spapr_irq_cpu_intc_destroy(SPAPR_MACHINE(qdev_get_machine()), cpu);
cpu_ppc_tb_free(env);
qdev_unrealize(DEVICE(cpu));
@@ -285,10 +283,8 @@ static bool spapr_realize_vcpu(PowerPCCPU *cpu, SpaprMachineState *spapr,
return false;
}
- if (!sc->pre_3_0_migration) {
- vmstate_register(NULL, cs->cpu_index, &vmstate_spapr_cpu_state,
- cpu->machine_data);
- }
+ vmstate_register(NULL, cs->cpu_index, &vmstate_spapr_cpu_state,
+ cpu->machine_data);
return true;
}
@@ -366,8 +362,6 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)
static Property spapr_cpu_core_properties[] = {
DEFINE_PROP_INT32("node-id", SpaprCpuCore, node_id, CPU_UNSET_NUMA_NODE_ID),
- DEFINE_PROP_BOOL("pre-3.0-migration", SpaprCpuCore, pre_3_0_migration,
- false),
DEFINE_PROP_END_OF_LIST()
};
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index 39c19e6674..011e53d961 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -7452,8 +7452,7 @@ static void ppc_disas_set_info(CPUState *cs, disassemble_info *info)
}
static Property ppc_cpu_properties[] = {
- DEFINE_PROP_BOOL("pre-3.0-migration", PowerPCCPU, pre_3_0_migration,
- false),
+ /* add default property here */
DEFINE_PROP_END_OF_LIST(),
};
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index 47495b68b1..717bf93e88 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -118,15 +118,6 @@ static const VMStateInfo vmstate_info_vsr = {
#define VMSTATE_VSR_ARRAY(_f, _s, _n) \
VMSTATE_VSR_ARRAY_V(_f, _s, _n, 0)
-#if defined(TARGET_PPC64)
-static bool cpu_pre_3_0_migration(void *opaque, int version_id)
-{
- PowerPCCPU *cpu = opaque;
-
- return cpu->pre_3_0_migration;
-}
-#endif
-
static int cpu_pre_save(void *opaque)
{
PowerPCCPU *cpu = opaque;
@@ -154,12 +145,6 @@ static int cpu_pre_save(void *opaque)
env->spr[SPR_IBAT4U + 2 * i + 1] = env->IBAT[1][i + 4];
}
- if (cpu->pre_3_0_migration) {
- if (cpu->hash64_opts) {
- cpu->mig_slb_nr = cpu->hash64_opts->slb_size;
- }
- }
-
/* Used to retain migration compatibility for pre 6.0 for 601 machines. */
env->hflags_compat_nmsr = 0;
@@ -503,12 +488,11 @@ static int slb_post_load(void *opaque, int version_id)
static const VMStateDescription vmstate_slb = {
.name = "cpu/slb",
- .version_id = 1,
+ .version_id = 2,
.minimum_version_id = 1,
.needed = slb_needed,
.post_load = slb_post_load,
.fields = (const VMStateField[]) {
- VMSTATE_INT32_TEST(mig_slb_nr, PowerPCCPU, cpu_pre_3_0_migration),
VMSTATE_SLB_ARRAY(env.slb, PowerPCCPU, MAX_SLB_ENTRIES),
VMSTATE_END_OF_LIST()
}
--
2.45.2
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v4 12/13] ppc/spapr: remove deprecated machine pseries-2.12-sxxm
2024-10-14 12:27 ` [PATCH v4 12/13] ppc/spapr: remove deprecated machine pseries-2.12-sxxm Harsh Prateek Bora
@ 2024-10-15 7:30 ` Cédric Le Goater
0 siblings, 0 replies; 16+ messages in thread
From: Cédric Le Goater @ 2024-10-15 7:30 UTC (permalink / raw)
To: Harsh Prateek Bora, qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413
On 10/14/24 14:27, Harsh Prateek Bora wrote:
> Commit 0cac0f1b964 marked pseries-2.12 machines as deprecated
> with reasons mentioned in its commit log.
> Removing pseries-2.12-sxxm specific code with this patch.
>
> Suggested-by: Cédric Le Goater <clg@kaod.org>
> Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/ppc/spapr.c | 14 --------------
> 1 file changed, 14 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index faf88a177b..aba0ad26f1 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -4731,8 +4731,6 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
> DEFINE_SPAPR_MACHINE_IMPL(true, major, minor)
> #define DEFINE_SPAPR_MACHINE(major, minor) \
> DEFINE_SPAPR_MACHINE_IMPL(false, major, minor)
> -#define DEFINE_SPAPR_MACHINE_TAGGED(major, minor, tag) \
> - DEFINE_SPAPR_MACHINE_IMPL(false, major, minor, _, tag)
>
> /*
> * pseries-9.2
> @@ -5042,18 +5040,6 @@ static void spapr_machine_2_12_class_options(MachineClass *mc)
>
> DEFINE_SPAPR_MACHINE(2, 12);
>
> -static void spapr_machine_2_12_sxxm_class_options(MachineClass *mc)
> -{
> - SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> -
> - spapr_machine_2_12_class_options(mc);
> - smc->default_caps.caps[SPAPR_CAP_CFPC] = SPAPR_CAP_WORKAROUND;
> - smc->default_caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_WORKAROUND;
> - smc->default_caps.caps[SPAPR_CAP_IBS] = SPAPR_CAP_FIXED_CCD;
> -}
> -
> -DEFINE_SPAPR_MACHINE_TAGGED(2, 12, sxxm);
> -
> static void spapr_machine_register_types(void)
> {
> type_register_static(&spapr_machine_info);
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 13/13] ppc/spapr: remove deprecated machine pseries-2.12
2024-10-14 12:27 ` [PATCH v4 13/13] ppc/spapr: remove deprecated machine pseries-2.12 Harsh Prateek Bora
@ 2024-10-15 7:31 ` Cédric Le Goater
0 siblings, 0 replies; 16+ messages in thread
From: Cédric Le Goater @ 2024-10-15 7:31 UTC (permalink / raw)
To: Harsh Prateek Bora, qemu-ppc, qemu-devel; +Cc: npiggin, danielhb413
On 10/14/24 14:27, Harsh Prateek Bora wrote:
> Commit 0cac0f1b964 marked pseries-2.12 machines as deprecated
> with reasons mentioned in its commit log.
> Removing pseries-2.12 specific code with this patch.
>
> While at it, also remove pre-3.0-migration hacks introduced for backward
> compatibility which are now turned useless.
>
> Suggested-by: Cédric Le Goater <clg@kaod.org>
> Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
> ---
> docs/about/deprecated.rst | 8 --------
> include/hw/ppc/spapr_cpu_core.h | 1 -
> target/ppc/cpu.h | 4 ----
> hw/ppc/spapr.c | 25 -------------------------
> hw/ppc/spapr_cpu_core.c | 12 +++---------
> target/ppc/cpu_init.c | 3 +--
> target/ppc/machine.c | 18 +-----------------
> 7 files changed, 5 insertions(+), 66 deletions(-)
>
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 48b230b0a0..3b312a5de2 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -243,14 +243,6 @@ These old machine types are quite neglected nowadays and thus might have
> various pitfalls with regards to live migration. Use a newer machine type
> instead.
>
> -``pseries-2.1`` up to ``pseries-2.12`` (since 9.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Older pseries machines before version 3.0 have undergone many changes
> -to correct issues, mostly regarding migration compatibility. These are
> -no longer maintained and removing them will make the code easier to
> -read and maintain. Use versions 3.0 and above as a replacement.
> -
> PPC 405 ``ref405ep`` machine (since 9.1)
> ''''''''''''''''''''''''''''''''''''''''
>
> diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_core.h
> index 69a52e39b8..68f7083483 100644
> --- a/include/hw/ppc/spapr_cpu_core.h
> +++ b/include/hw/ppc/spapr_cpu_core.h
> @@ -28,7 +28,6 @@ struct SpaprCpuCore {
> /*< public >*/
> PowerPCCPU **threads;
> int node_id;
> - bool pre_3_0_migration; /* older machine don't know about SpaprCpuState */
> };
>
> struct SpaprCpuCoreClass {
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 74a0ab768d..506c8c825c 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -1454,10 +1454,6 @@ struct ArchCPU {
> /* Those resources are used only during code translation */
> /* opcode handlers */
> opc_handler_t *opcodes[PPC_CPU_OPCODES_LEN];
> -
> - /* Fields related to migration compatibility hacks */
> - bool pre_3_0_migration;
> - int32_t mig_slb_nr;
> };
>
> /**
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index aba0ad26f1..5c02037c56 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -5015,31 +5015,6 @@ static void spapr_machine_3_0_class_options(MachineClass *mc)
>
> DEFINE_SPAPR_MACHINE(3, 0);
>
> -/*
> - * pseries-2.12
> - */
> -static void spapr_machine_2_12_class_options(MachineClass *mc)
> -{
> - SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> - static GlobalProperty compat[] = {
> - { TYPE_POWERPC_CPU, "pre-3.0-migration", "on" },
> - { TYPE_SPAPR_CPU_CORE, "pre-3.0-migration", "on" },
> - };
> -
> - spapr_machine_3_0_class_options(mc);
> - compat_props_add(mc->compat_props, hw_compat_2_12, hw_compat_2_12_len);
> - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
> -
> - /* We depend on kvm_enabled() to choose a default value for the
> - * hpt-max-page-size capability. Of course we can't do it here
> - * because this is too early and the HW accelerator isn't initialized
> - * yet. Postpone this to machine init (see default_caps_with_cpu()).
> - */
> - smc->default_caps.caps[SPAPR_CAP_HPT_MAXPAGESIZE] = 0;
> -}
> -
> -DEFINE_SPAPR_MACHINE(2, 12);
> -
> static void spapr_machine_register_types(void)
> {
> type_register_static(&spapr_machine_info);
> diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
> index 4642245168..1a84345f36 100644
> --- a/hw/ppc/spapr_cpu_core.c
> +++ b/hw/ppc/spapr_cpu_core.c
> @@ -197,9 +197,7 @@ static void spapr_unrealize_vcpu(PowerPCCPU *cpu, SpaprCpuCore *sc)
> {
> CPUPPCState *env = &cpu->env;
>
> - if (!sc->pre_3_0_migration) {
> - vmstate_unregister(NULL, &vmstate_spapr_cpu_state, cpu->machine_data);
> - }
> + vmstate_unregister(NULL, &vmstate_spapr_cpu_state, cpu->machine_data);
> spapr_irq_cpu_intc_destroy(SPAPR_MACHINE(qdev_get_machine()), cpu);
> cpu_ppc_tb_free(env);
> qdev_unrealize(DEVICE(cpu));
> @@ -285,10 +283,8 @@ static bool spapr_realize_vcpu(PowerPCCPU *cpu, SpaprMachineState *spapr,
> return false;
> }
>
> - if (!sc->pre_3_0_migration) {
> - vmstate_register(NULL, cs->cpu_index, &vmstate_spapr_cpu_state,
> - cpu->machine_data);
> - }
> + vmstate_register(NULL, cs->cpu_index, &vmstate_spapr_cpu_state,
> + cpu->machine_data);
> return true;
> }
>
> @@ -366,8 +362,6 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)
>
> static Property spapr_cpu_core_properties[] = {
> DEFINE_PROP_INT32("node-id", SpaprCpuCore, node_id, CPU_UNSET_NUMA_NODE_ID),
> - DEFINE_PROP_BOOL("pre-3.0-migration", SpaprCpuCore, pre_3_0_migration,
> - false),
> DEFINE_PROP_END_OF_LIST()
> };
>
> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
> index 39c19e6674..011e53d961 100644
> --- a/target/ppc/cpu_init.c
> +++ b/target/ppc/cpu_init.c
> @@ -7452,8 +7452,7 @@ static void ppc_disas_set_info(CPUState *cs, disassemble_info *info)
> }
>
> static Property ppc_cpu_properties[] = {
> - DEFINE_PROP_BOOL("pre-3.0-migration", PowerPCCPU, pre_3_0_migration,
> - false),
> + /* add default property here */
> DEFINE_PROP_END_OF_LIST(),
In case you resping, please remove ppc_cpu_properties[].
Since this is minor,
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> };
>
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index 47495b68b1..717bf93e88 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -118,15 +118,6 @@ static const VMStateInfo vmstate_info_vsr = {
> #define VMSTATE_VSR_ARRAY(_f, _s, _n) \
> VMSTATE_VSR_ARRAY_V(_f, _s, _n, 0)
>
> -#if defined(TARGET_PPC64)
> -static bool cpu_pre_3_0_migration(void *opaque, int version_id)
> -{
> - PowerPCCPU *cpu = opaque;
> -
> - return cpu->pre_3_0_migration;
> -}
> -#endif
> -
> static int cpu_pre_save(void *opaque)
> {
> PowerPCCPU *cpu = opaque;
> @@ -154,12 +145,6 @@ static int cpu_pre_save(void *opaque)
> env->spr[SPR_IBAT4U + 2 * i + 1] = env->IBAT[1][i + 4];
> }
>
> - if (cpu->pre_3_0_migration) {
> - if (cpu->hash64_opts) {
> - cpu->mig_slb_nr = cpu->hash64_opts->slb_size;
> - }
> - }
> -
> /* Used to retain migration compatibility for pre 6.0 for 601 machines. */
> env->hflags_compat_nmsr = 0;
>
> @@ -503,12 +488,11 @@ static int slb_post_load(void *opaque, int version_id)
>
> static const VMStateDescription vmstate_slb = {
> .name = "cpu/slb",
> - .version_id = 1,
> + .version_id = 2,
> .minimum_version_id = 1,
> .needed = slb_needed,
> .post_load = slb_post_load,
> .fields = (const VMStateField[]) {
> - VMSTATE_INT32_TEST(mig_slb_nr, PowerPCCPU, cpu_pre_3_0_migration),
> VMSTATE_SLB_ARRAY(env.slb, PowerPCCPU, MAX_SLB_ENTRIES),
> VMSTATE_END_OF_LIST()
> }
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2024-10-15 7:34 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-14 12:27 [PATCH v4 00/13] ppc/spapr: remove deprecated machines specific code Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 01/13] ppc/spapr: remove deprecated machine pseries-2.1 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 02/13] ppc/spapr: remove deprecated machine pseries-2.2 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 03/13] ppc/spapr: remove deprecated machine pseries-2.3 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 04/13] ppc/spapr: remove deprecated machine pseries-2.4 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 05/13] ppc/spapr: remove deprecated machine pseries-2.5 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 06/13] ppc/spapr: remove deprecated machine pseries-2.6 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 07/13] ppc/spapr: remove deprecated machine pseries-2.7 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 08/13] ppc/spapr: remove deprecated machine pseries-2.8 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 09/13] ppc/spapr: remove deprecated machine pseries-2.9 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 10/13] ppc/spapr: remove deprecated machine pseries-2.10 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 11/13] ppc/spapr: remove deprecated machine pseries-2.11 Harsh Prateek Bora
2024-10-14 12:27 ` [PATCH v4 12/13] ppc/spapr: remove deprecated machine pseries-2.12-sxxm Harsh Prateek Bora
2024-10-15 7:30 ` Cédric Le Goater
2024-10-14 12:27 ` [PATCH v4 13/13] ppc/spapr: remove deprecated machine pseries-2.12 Harsh Prateek Bora
2024-10-15 7:31 ` Cédric Le Goater
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).