From 419613a103af4322682003e95346ed438fcdfb41 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:23 +0100 Subject: hw/s390x/s390-virtio-ccw: Remove the deprecated 2.4 and 2.5 machine types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit They are older than 6 years, so according to our machine support policy, they can be removed now. This removes the requirements for the storage keys "migration-enabled" property which will be removed in the next patch. It also removes the code that sets "max_revision" to 0 for some CCW devices, but the relating code in virtio-ccw.c indicates that 0 could have also been in use for other machines types < 5.1, so further clean-up for code related to "max_revision" won't be done yet (see also commit d55f518248f - "virtio: skip legacy support check on machine types less than 5.1"). Tested-by: Philippe Mathieu-Daudé Reviewed-by: Philippe Mathieu-Daudé Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-2-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 37 ------------------------------------- 1 file changed, 37 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 2be8da2..bca6148 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -1325,43 +1325,6 @@ static void ccw_machine_2_6_class_options(MachineClass *mc) } DEFINE_CCW_MACHINE(2, 6); -static void ccw_machine_2_5_instance_options(MachineState *machine) -{ - ccw_machine_2_6_instance_options(machine); -} - -static void ccw_machine_2_5_class_options(MachineClass *mc) -{ - ccw_machine_2_6_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_2_5, hw_compat_2_5_len); -} -DEFINE_CCW_MACHINE(2, 5); - -static void ccw_machine_2_4_instance_options(MachineState *machine) -{ - ccw_machine_2_5_instance_options(machine); -} - -static void ccw_machine_2_4_class_options(MachineClass *mc) -{ - static GlobalProperty compat[] = { - { TYPE_S390_SKEYS, "migration-enabled", "off", }, - { "virtio-blk-ccw", "max_revision", "0", }, - { "virtio-balloon-ccw", "max_revision", "0", }, - { "virtio-serial-ccw", "max_revision", "0", }, - { "virtio-9p-ccw", "max_revision", "0", }, - { "virtio-rng-ccw", "max_revision", "0", }, - { "virtio-net-ccw", "max_revision", "0", }, - { "virtio-scsi-ccw", "max_revision", "0", }, - { "vhost-scsi-ccw", "max_revision", "0", }, - }; - - ccw_machine_2_5_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_2_4, hw_compat_2_4_len); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); -} -DEFINE_CCW_MACHINE(2, 4); - #endif static void ccw_machine_register_types(void) -- cgit v1.1 From 93edd339ff18a55d28f5070eaf9a59b3f8385249 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:24 +0100 Subject: hw/s390x/s390-skeys: Remove the "migration-enabled" property This property was only set to "off" by the old s390-ccw-virtio-2.4 machine type which has now been removed. So we can now remove the property and the related code, too. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-3-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-skeys.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index dda96ea..995817f 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -469,23 +469,15 @@ static void s390_skeys_realize(DeviceState *dev, Error **errp) { S390SKeysState *ss = S390_SKEYS(dev); - if (ss->migration_enabled) { - register_savevm_live(TYPE_S390_SKEYS, 0, 1, - &savevm_s390_storage_keys, ss); - } + register_savevm_live(TYPE_S390_SKEYS, 0, 1, &savevm_s390_storage_keys, ss); } -static const Property s390_skeys_props[] = { - DEFINE_PROP_BOOL("migration-enabled", S390SKeysState, migration_enabled, true), -}; - static void s390_skeys_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); dc->hotpluggable = false; dc->realize = s390_skeys_realize; - device_class_set_props(dc, s390_skeys_props); set_bit(DEVICE_CATEGORY_MISC, dc->categories); } -- cgit v1.1 From 29ac4a4a4cae350c48a2c84386a5db594b79bc68 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:25 +0100 Subject: hw/s390x/s390-virtio-ccw: Remove the deprecated 2.6 machine type The s390-ccw-virtio-2.6 machine is older than 6 years, so according to our machine support policy, it can be removed now. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-4-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 20 -------------------- 1 file changed, 20 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index bca6148..341430a 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -1305,26 +1305,6 @@ static void ccw_machine_2_7_class_options(MachineClass *mc) } DEFINE_CCW_MACHINE(2, 7); -static void ccw_machine_2_6_instance_options(MachineState *machine) -{ - ccw_machine_2_7_instance_options(machine); -} - -static void ccw_machine_2_6_class_options(MachineClass *mc) -{ - S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); - static GlobalProperty compat[] = { - { TYPE_S390_IPL, "iplbext_migration", "off", }, - { TYPE_VIRTUAL_CSS_BRIDGE, "css_dev_path", "off", }, - }; - - s390mc->ri_allowed = false; - ccw_machine_2_7_class_options(mc); - 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_CCW_MACHINE(2, 6); - #endif static void ccw_machine_register_types(void) -- cgit v1.1 From db65ac5e258e75e9aec45626bf1071626094e057 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:26 +0100 Subject: hw/s390x: Remove the "ri_allowed" switch Only s390-ccw-virtio-2.6 and older used to set this switch to "off", for newer machine types it is always enabled. Since we removed the old machine types now, we can also remove the switch in the code and assume that it is always enabled now. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-5-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 341430a..ffeee2d 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -725,10 +725,10 @@ static S390CcwMachineClass *current_mc; * various "*_allowed" variables are enabled, so that the *_allowed() wrappers * below return the correct default value for the "none" machine. * - * Attention! Do *not* add additional new wrappers for CPU features (e.g. like - * the ri_allowed() wrapper) via this mechanism anymore. CPU features should - * be handled via the CPU models, i.e. checking with cpu_model_allowed() during - * CPU initialization and s390_has_feat() later should be sufficient. + * Attention! Do *not* add additional new wrappers for CPU features via this + * mechanism anymore. CPU features should be handled via the CPU models, + * i.e. checking with cpu_model_allowed() during CPU initialization and + * s390_has_feat() later should be sufficient. */ static S390CcwMachineClass *get_machine_class(void) { @@ -744,11 +744,6 @@ static S390CcwMachineClass *get_machine_class(void) return current_mc; } -bool ri_allowed(void) -{ - return get_machine_class()->ri_allowed; -} - bool cpu_model_allowed(void) { return get_machine_class()->cpu_model_allowed; @@ -791,7 +786,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data) HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc); S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); - s390mc->ri_allowed = true; s390mc->cpu_model_allowed = true; s390mc->hpage_1m_allowed = true; s390mc->max_threads = 1; -- cgit v1.1 From 25a65a274d5c6030c1e1ce79b845c7143ec0dc7a Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:27 +0100 Subject: hw/s390x/ipl: Remove the "iplbext_migration" property MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the old machine types that used this property have been removed, we can remove the property and the corresponding code. Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-6-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/ipl.c | 10 ---------- hw/s390x/ipl.h | 1 - 2 files changed, 11 deletions(-) (limited to 'hw') diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index 3a946be..4aa21c9 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -49,13 +49,6 @@ #define BIOS_MAX_SIZE 0x300000UL #define IPL_PSW_MASK (PSW_MASK_32 | PSW_MASK_64) -static bool iplb_extended_needed(void *opaque) -{ - S390IPLState *ipl = S390_IPL(object_resolve_path(TYPE_S390_IPL, NULL)); - - return ipl->iplbext_migration; -} - /* Place the IPLB chain immediately before the BIOS in memory */ static uint64_t find_iplb_chain_addr(uint64_t bios_addr, uint16_t count) { @@ -67,7 +60,6 @@ static const VMStateDescription vmstate_iplb_extended = { .name = "ipl/iplb_extended", .version_id = 0, .minimum_version_id = 0, - .needed = iplb_extended_needed, .fields = (const VMStateField[]) { VMSTATE_UINT8_ARRAY(reserved_ext, IplParameterBlock, 4096 - 200), VMSTATE_END_OF_LIST() @@ -297,8 +289,6 @@ static const Property s390_ipl_properties[] = { DEFINE_PROP_STRING("cmdline", S390IPLState, cmdline), DEFINE_PROP_STRING("firmware", S390IPLState, firmware), DEFINE_PROP_BOOL("enforce_bios", S390IPLState, enforce_bios, false), - DEFINE_PROP_BOOL("iplbext_migration", S390IPLState, iplbext_migration, - true), }; static void s390_ipl_set_boot_menu(S390IPLState *ipl) diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h index d7d0b7b..8e3882d 100644 --- a/hw/s390x/ipl.h +++ b/hw/s390x/ipl.h @@ -80,7 +80,6 @@ struct S390IPLState { uint8_t cssid; uint8_t ssid; uint16_t devno; - bool iplbext_migration; }; QEMU_BUILD_BUG_MSG(offsetof(S390IPLState, iplb) & 3, "alignment of iplb wrong"); -- cgit v1.1 From 1a276185401a95a1341e52837d07b3a8f76b3634 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:28 +0100 Subject: hw/s390x/css-bridge: Remove the "css_dev_path" property MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the s390-ccw-virtio-2.6 and older machine types have been removed, the "css_dev_path" property of the css-bridge is also not used anymore and thus can be removed. This way we finally get rid of the problem that has been described in: https://gitlab.com/qemu-project/qemu/-/issues/2213 Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-7-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/css-bridge.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'hw') diff --git a/hw/s390x/css-bridge.c b/hw/s390x/css-bridge.c index 04ab1f6..c48d557 100644 --- a/hw/s390x/css-bridge.c +++ b/hw/s390x/css-bridge.c @@ -66,16 +66,8 @@ static char *virtual_css_bus_get_dev_path(DeviceState *dev) { CcwDevice *ccw_dev = CCW_DEVICE(dev); SubchDev *sch = ccw_dev->sch; - VirtualCssBridge *bridge = - VIRTUAL_CSS_BRIDGE(qdev_get_parent_bus(dev)->parent); - /* - * We can't provide a dev path for backward compatibility on - * older machines, as it is visible in the migration stream. - */ - return bridge->css_dev_path ? - g_strdup_printf("/%02x.%1x.%04x", sch->cssid, sch->ssid, sch->devno) : - NULL; + return g_strdup_printf("/%02x.%1x.%04x", sch->cssid, sch->ssid, sch->devno); } static void virtual_css_bus_class_init(ObjectClass *klass, void *data) @@ -120,11 +112,6 @@ VirtualCssBus *virtual_css_bus_init(void) /***************** Virtual-css Bus Bridge Device ********************/ -static const Property virtual_css_bridge_properties[] = { - DEFINE_PROP_BOOL("css_dev_path", VirtualCssBridge, css_dev_path, - true), -}; - static bool prop_get_true(Object *obj, Error **errp) { return true; @@ -137,7 +124,6 @@ static void virtual_css_bridge_class_init(ObjectClass *klass, void *data) hc->unplug = ccw_device_unplug; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - device_class_set_props(dc, virtual_css_bridge_properties); object_class_property_add_bool(klass, "cssid-unrestricted", prop_get_true, NULL); object_class_property_set_description(klass, "cssid-unrestricted", -- cgit v1.1 From 3199c7ee76089fb6844f6b2bed1f5d3d99a7527c Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:29 +0100 Subject: hw/s390x/s390-virtio-ccw: Remove the deprecated 2.7 machine type The s390-ccw-virtio-2.7 machine is older than 6 years, so according to our machine support policy, it can be removed now. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-8-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index ffeee2d..a1e9c1f 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -1284,21 +1284,6 @@ static void ccw_machine_2_8_class_options(MachineClass *mc) } DEFINE_CCW_MACHINE(2, 8); -static void ccw_machine_2_7_instance_options(MachineState *machine) -{ - ccw_machine_2_8_instance_options(machine); -} - -static void ccw_machine_2_7_class_options(MachineClass *mc) -{ - S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); - - s390mc->cpu_model_allowed = false; - ccw_machine_2_8_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_2_7, hw_compat_2_7_len); -} -DEFINE_CCW_MACHINE(2, 7); - #endif static void ccw_machine_register_types(void) -- cgit v1.1 From fd58c03a0ecb67420ac81d6b3095605ad0c45edd Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:30 +0100 Subject: hw/s390x: Remove the cpu_model_allowed flag and related code Now that the last machine type that disabled cpu_model_allowed has been removed, we can also remove the cpu_model_allowed flag itself and all the related conditional code. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-9-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index a1e9c1f..08562e4 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -727,8 +727,7 @@ static S390CcwMachineClass *current_mc; * * Attention! Do *not* add additional new wrappers for CPU features via this * mechanism anymore. CPU features should be handled via the CPU models, - * i.e. checking with cpu_model_allowed() during CPU initialization and - * s390_has_feat() later should be sufficient. + * i.e. checking with s390_has_feat() should be sufficient. */ static S390CcwMachineClass *get_machine_class(void) { @@ -744,11 +743,6 @@ static S390CcwMachineClass *get_machine_class(void) return current_mc; } -bool cpu_model_allowed(void) -{ - return get_machine_class()->cpu_model_allowed; -} - bool hpage_1m_allowed(void) { return get_machine_class()->hpage_1m_allowed; @@ -786,7 +780,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data) HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc); S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); - s390mc->cpu_model_allowed = true; s390mc->hpage_1m_allowed = true; s390mc->max_threads = 1; mc->init = ccw_init; -- cgit v1.1 From 66924fe36977d9d9e45ba3e0b6e851ee170507f6 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:31 +0100 Subject: hw/s390x/s390-virtio-ccw: Remove the deprecated 2.8 machine type The s390-ccw-virtio-2.8 machine is older than 6 years, so according to our machine support policy, it can be removed now. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-10-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'hw') diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 08562e4..8a242cc 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -1260,23 +1260,6 @@ static void ccw_machine_2_9_class_options(MachineClass *mc) } DEFINE_CCW_MACHINE(2, 9); -static void ccw_machine_2_8_instance_options(MachineState *machine) -{ - ccw_machine_2_9_instance_options(machine); -} - -static void ccw_machine_2_8_class_options(MachineClass *mc) -{ - static GlobalProperty compat[] = { - { TYPE_S390_FLIC_COMMON, "adapter_routes_max_batch", "64", }, - }; - - ccw_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)); -} -DEFINE_CCW_MACHINE(2, 8); - #endif static void ccw_machine_register_types(void) -- cgit v1.1 From 921dee4645c4e8abffbbecaf595c82935170a072 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 3 Jan 2025 15:42:32 +0100 Subject: hw/s390x: Remove the "adapter_routes_max_batch" property from the flic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the s390-ccw-virtio-2.8 machine has been removed, we don't need the "adapter_routes_max_batch" property anymore and can remove it. Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-11-thuth@redhat.com> Signed-off-by: Thomas Huth --- hw/intc/s390_flic.c | 9 --------- hw/s390x/virtio-ccw.c | 5 ++--- 2 files changed, 2 insertions(+), 12 deletions(-) (limited to 'hw') diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c index 3f3fa93..c20f4c1 100644 --- a/hw/intc/s390_flic.c +++ b/hw/intc/s390_flic.c @@ -471,8 +471,6 @@ static void qemu_s390_flic_class_init(ObjectClass *oc, void *data) } static const Property s390_flic_common_properties[] = { - DEFINE_PROP_UINT32("adapter_routes_max_batch", S390FLICState, - adapter_routes_max_batch, ADAPTER_ROUTES_MAX_GSI), DEFINE_PROP_BOOL("migration-enabled", S390FLICState, migration_enabled, true), }; @@ -480,13 +478,6 @@ static const Property s390_flic_common_properties[] = { static void s390_flic_common_realize(DeviceState *dev, Error **errp) { S390FLICState *fs = S390_FLIC_COMMON(dev); - uint32_t max_batch = fs->adapter_routes_max_batch; - - if (max_batch > ADAPTER_ROUTES_MAX_GSI) { - error_setg(errp, "flic property adapter_routes_max_batch too big" - " (%d > %d)", max_batch, ADAPTER_ROUTES_MAX_GSI); - return; - } fs->ais_supported = s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION); } diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 7cbce47..43f3b16 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -1157,7 +1157,6 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp) CcwDevice *ccw_dev = CCW_DEVICE(d); SubchDev *sch = ccw_dev->sch; int n = virtio_get_num_queues(vdev); - S390FLICState *flic = s390_get_flic(); if (!virtio_has_feature(vdev->host_features, VIRTIO_F_VERSION_1)) { dev->max_rev = 0; @@ -1184,10 +1183,10 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp) VIRTIO_QUEUE_MAX); return; } - if (virtio_get_num_queues(vdev) > flic->adapter_routes_max_batch) { + if (virtio_get_num_queues(vdev) > ADAPTER_ROUTES_MAX_GSI) { error_setg(errp, "The number of virtqueues %d " "exceeds flic adapter route limit %d", n, - flic->adapter_routes_max_batch); + ADAPTER_ROUTES_MAX_GSI); return; } -- cgit v1.1