* [PULL 01/14] tests/tcg/s390x: Use the SLOF libc headers for the multiarch tests
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
@ 2025-01-08 8:44 ` Thomas Huth
2025-01-08 8:44 ` [PULL 02/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.4 and 2.5 machine types Thomas Huth
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:44 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Ilya Leoshkevich, Philippe Mathieu-Daudé
From: Ilya Leoshkevich <iii@linux.ibm.com>
Compiling the s390x tests on Fedora, which has the s390x cross-compiler
installed, fails with:
In file included from qemu/tests/tcg/s390x/console.c:8:
qemu/tests/tcg/s390x/../../../pc-bios/s390-ccw/sclp.c:11:10: fatal error: string.h: No such file or directory
11 | #include <string.h>
This is because Fedora does not have a cross-libc. Since console.c
already uses the SLOF libc implementation, add the respective headers
to the include path.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20241216133819.78583-1-iii@linux.ibm.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/tcg/s390x/Makefile.softmmu-target | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/tcg/s390x/Makefile.softmmu-target b/tests/tcg/s390x/Makefile.softmmu-target
index 969bc5728f..7adde2fa08 100644
--- a/tests/tcg/s390x/Makefile.softmmu-target
+++ b/tests/tcg/s390x/Makefile.softmmu-target
@@ -45,7 +45,8 @@ TESTS += $(ASM_TESTS)
S390X_MULTIARCH_RUNTIME_OBJS = head64.o console.o $(MINILIB_OBJS)
$(MULTIARCH_TESTS): $(S390X_MULTIARCH_RUNTIME_OBJS)
$(MULTIARCH_TESTS): LDFLAGS += $(S390X_MULTIARCH_RUNTIME_OBJS)
-$(MULTIARCH_TESTS): CFLAGS += $(MINILIB_INC)
+$(MULTIARCH_TESTS): CFLAGS += $(MINILIB_INC) \
+ -I$(SRC_PATH)/roms/SLOF/lib/libc/include/
memory: CFLAGS += -DCHECK_UNALIGNED=0
# s390x clears the BSS section so we need to account for that
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 02/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.4 and 2.5 machine types
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
2025-01-08 8:44 ` [PULL 01/14] tests/tcg/s390x: Use the SLOF libc headers for the multiarch tests Thomas Huth
@ 2025-01-08 8:44 ` Thomas Huth
2025-01-08 8:45 ` [PULL 03/14] hw/s390x/s390-skeys: Remove the "migration-enabled" property Thomas Huth
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:44 UTC (permalink / raw)
To: qemu-devel
Cc: Stefan Hajnoczi, Philippe Mathieu-Daudé,
Christian Borntraeger
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é <philmd@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-2-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 37 -------------------------------------
1 file changed, 37 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 2be8da2913..bca61488cc 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)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 03/14] hw/s390x/s390-skeys: Remove the "migration-enabled" property
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
2025-01-08 8:44 ` [PULL 01/14] tests/tcg/s390x: Use the SLOF libc headers for the multiarch tests Thomas Huth
2025-01-08 8:44 ` [PULL 02/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.4 and 2.5 machine types Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 04/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.6 machine type Thomas Huth
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cornelia Huck, Christian Borntraeger
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 <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-3-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/hw/s390x/storage-keys.h | 2 --
hw/s390x/s390-skeys.c | 10 +---------
2 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/include/hw/s390x/storage-keys.h b/include/hw/s390x/storage-keys.h
index 976ffb2039..408d2815d4 100644
--- a/include/hw/s390x/storage-keys.h
+++ b/include/hw/s390x/storage-keys.h
@@ -21,8 +21,6 @@ OBJECT_DECLARE_TYPE(S390SKeysState, S390SKeysClass, S390_SKEYS)
struct S390SKeysState {
DeviceState parent_obj;
- bool migration_enabled;
-
};
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index dda96ea32a..995817f4a3 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);
}
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 04/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.6 machine type
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (2 preceding siblings ...)
2025-01-08 8:45 ` [PULL 03/14] hw/s390x/s390-skeys: Remove the "migration-enabled" property Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 05/14] hw/s390x: Remove the "ri_allowed" switch Thomas Huth
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cornelia Huck, Christian Borntraeger
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 <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-4-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 20 --------------------
1 file changed, 20 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index bca61488cc..341430a101 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)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 05/14] hw/s390x: Remove the "ri_allowed" switch
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (3 preceding siblings ...)
2025-01-08 8:45 ` [PULL 04/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.6 machine type Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 06/14] hw/s390x/ipl: Remove the "iplbext_migration" property Thomas Huth
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cornelia Huck, Christian Borntraeger
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 <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-5-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/hw/s390x/s390-virtio-ccw.h | 3 ---
hw/s390x/s390-virtio-ccw.c | 14 ++++----------
target/s390x/kvm/kvm.c | 6 ++----
3 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h
index 599740a998..4559dbf1bd 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -53,14 +53,11 @@ struct S390CcwMachineClass {
MachineClass parent_class;
/*< public >*/
- bool ri_allowed;
bool cpu_model_allowed;
bool hpage_1m_allowed;
int max_threads;
};
-/* runtime-instrumentation allowed by the machine */
-bool ri_allowed(void);
/* cpu model allowed by the machine */
bool cpu_model_allowed(void);
/* 1M huge page mappings allowed by the machine */
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 341430a101..ffeee2da48 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;
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
index db645a4813..540b474398 100644
--- a/target/s390x/kvm/kvm.c
+++ b/target/s390x/kvm/kvm.c
@@ -374,10 +374,8 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
kvm_vm_enable_cap(s, KVM_CAP_S390_VECTOR_REGISTERS, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_USER_STSI, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_CPU_TOPOLOGY, 0);
- if (ri_allowed()) {
- if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) {
- cap_ri = 1;
- }
+ if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) {
+ cap_ri = 1;
}
if (cpu_model_allowed()) {
kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0);
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 06/14] hw/s390x/ipl: Remove the "iplbext_migration" property
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (4 preceding siblings ...)
2025-01-08 8:45 ` [PULL 05/14] hw/s390x: Remove the "ri_allowed" switch Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 07/14] hw/s390x/css-bridge: Remove the "css_dev_path" property Thomas Huth
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel
Cc: Stefan Hajnoczi, Philippe Mathieu-Daudé, Cornelia Huck,
Christian Borntraeger
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é <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-6-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/ipl.h | 1 -
hw/s390x/ipl.c | 10 ----------
2 files changed, 11 deletions(-)
diff --git a/hw/s390x/ipl.h b/hw/s390x/ipl.h
index d7d0b7bfd2..8e3882d506 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");
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 3a946be7a5..4aa21c91fc 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)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 07/14] hw/s390x/css-bridge: Remove the "css_dev_path" property
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (5 preceding siblings ...)
2025-01-08 8:45 ` [PULL 06/14] hw/s390x/ipl: Remove the "iplbext_migration" property Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 08/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.7 machine type Thomas Huth
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel
Cc: Stefan Hajnoczi, Philippe Mathieu-Daudé, Cornelia Huck,
Christian Borntraeger
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é <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-7-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/hw/s390x/css-bridge.h | 1 -
hw/s390x/css-bridge.c | 16 +---------------
2 files changed, 1 insertion(+), 16 deletions(-)
diff --git a/include/hw/s390x/css-bridge.h b/include/hw/s390x/css-bridge.h
index deb606d71f..4f874ed781 100644
--- a/include/hw/s390x/css-bridge.h
+++ b/include/hw/s390x/css-bridge.h
@@ -19,7 +19,6 @@
/* virtual css bridge */
struct VirtualCssBridge {
SysBusDevice sysbus_dev;
- bool css_dev_path;
};
#define TYPE_VIRTUAL_CSS_BRIDGE "virtual-css-bridge"
diff --git a/hw/s390x/css-bridge.c b/hw/s390x/css-bridge.c
index 04ab1f6402..c48d5571b5 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",
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 08/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.7 machine type
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (6 preceding siblings ...)
2025-01-08 8:45 ` [PULL 07/14] hw/s390x/css-bridge: Remove the "css_dev_path" property Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 09/14] hw/s390x: Remove the cpu_model_allowed flag and related code Thomas Huth
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cornelia Huck, Christian Borntraeger
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 <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-8-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index ffeee2da48..a1e9c1f6e8 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)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 09/14] hw/s390x: Remove the cpu_model_allowed flag and related code
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (7 preceding siblings ...)
2025-01-08 8:45 ` [PULL 08/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.7 machine type Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 10/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.8 machine type Thomas Huth
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cornelia Huck, Christian Borntraeger
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 <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-9-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/hw/s390x/s390-virtio-ccw.h | 3 ---
hw/s390x/s390-virtio-ccw.c | 9 +--------
target/s390x/kvm/kvm.c | 10 ++--------
3 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h
index 4559dbf1bd..686d9497d2 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -53,13 +53,10 @@ struct S390CcwMachineClass {
MachineClass parent_class;
/*< public >*/
- bool cpu_model_allowed;
bool hpage_1m_allowed;
int max_threads;
};
-/* cpu model allowed by the machine */
-bool cpu_model_allowed(void);
/* 1M huge page mappings allowed by the machine */
bool hpage_1m_allowed(void);
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index a1e9c1f6e8..08562e45a8 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;
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
index 540b474398..4d56e653dd 100644
--- a/target/s390x/kvm/kvm.c
+++ b/target/s390x/kvm/kvm.c
@@ -374,12 +374,10 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
kvm_vm_enable_cap(s, KVM_CAP_S390_VECTOR_REGISTERS, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_USER_STSI, 0);
kvm_vm_enable_cap(s, KVM_CAP_S390_CPU_TOPOLOGY, 0);
+ kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0);
if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) {
cap_ri = 1;
}
- if (cpu_model_allowed()) {
- kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0);
- }
/*
* The migration interface for ais was introduced with kernel 4.13
@@ -387,7 +385,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
* support is considered necessary, we only try to enable this for
* newer machine types if KVM_CAP_S390_AIS_MIGRATION is available.
*/
- if (cpu_model_allowed() && kvm_kernel_irqchip_allowed() &&
+ if (kvm_kernel_irqchip_allowed() &&
kvm_check_extension(s, KVM_CAP_S390_AIS_MIGRATION)) {
kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0);
}
@@ -2352,10 +2350,6 @@ static int configure_cpu_feat(const S390FeatBitmap features)
bool kvm_s390_cpu_models_supported(void)
{
- if (!cpu_model_allowed()) {
- /* compatibility machines interfere with the cpu model */
- return false;
- }
return kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL,
KVM_S390_VM_CPU_MACHINE) &&
kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL,
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 10/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.8 machine type
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (8 preceding siblings ...)
2025-01-08 8:45 ` [PULL 09/14] hw/s390x: Remove the cpu_model_allowed flag and related code Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 11/14] hw/s390x: Remove the "adapter_routes_max_batch" property from the flic Thomas Huth
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Cornelia Huck, Christian Borntraeger
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 <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-10-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 08562e45a8..8a242cc1ec 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)
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 11/14] hw/s390x: Remove the "adapter_routes_max_batch" property from the flic
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (9 preceding siblings ...)
2025-01-08 8:45 ` [PULL 10/14] hw/s390x/s390-virtio-ccw: Remove the deprecated 2.8 machine type Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 12/14] Remove the deprecated "-runas" command line option Thomas Huth
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel
Cc: Stefan Hajnoczi, Philippe Mathieu-Daudé, Cornelia Huck,
Christian Borntraeger
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é <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Message-ID: <20250103144232.520383-11-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
include/hw/s390x/s390_flic.h | 2 --
hw/intc/s390_flic.c | 9 ---------
hw/s390x/virtio-ccw.c | 5 ++---
3 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/include/hw/s390x/s390_flic.h b/include/hw/s390x/s390_flic.h
index 4d66c5e42e..85016d5ccc 100644
--- a/include/hw/s390x/s390_flic.h
+++ b/include/hw/s390x/s390_flic.h
@@ -41,8 +41,6 @@ OBJECT_DECLARE_TYPE(S390FLICState, S390FLICStateClass,
struct S390FLICState {
SysBusDevice parent_obj;
- /* to limit AdapterRoutes.num_routes for compat */
- uint32_t adapter_routes_max_batch;
bool ais_supported;
bool migration_enabled;
};
diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
index 3f3fa939d3..c20f4c1075 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 7cbce4766a..43f3b162c8 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;
}
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 12/14] Remove the deprecated "-runas" command line option
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (10 preceding siblings ...)
2025-01-08 8:45 ` [PULL 11/14] hw/s390x: Remove the "adapter_routes_max_batch" property from the flic Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 13/14] docs/about/deprecated: Remove paragraph about initial deprecation in 2.10 Thomas Huth
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Daniel P. Berrangé
It has been marked as deprecated two releases ago, so it should
be fine now to remove this command line option.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20250103155411.721759-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
docs/about/deprecated.rst | 6 ------
docs/about/removed-features.rst | 6 ++++++
system/vl.c | 9 ---------
qemu-options.hx | 15 +--------------
4 files changed, 7 insertions(+), 29 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index d6809f94ea..63b46fd520 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -74,12 +74,6 @@ configurations (e.g. -smp drawers=1,books=1,clusters=1 for x86 PC machine) is
marked deprecated since 9.0, users have to ensure that all the topology members
described with -smp are supported by the target machine.
-``-runas`` (since 9.1)
-''''''''''''''''''''''
-
-Use ``-run-with user=..`` instead.
-
-
User-mode emulator command line arguments
-----------------------------------------
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index cb1388049a..c6616ce05e 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -555,6 +555,12 @@ to produce an odd effect (rotating input but not display output). But
this was never intended or documented behaviour, so we have dropped
the options along with the machine models they were intended for.
+``-runas`` (removed in 10.0)
+''''''''''''''''''''''''''''
+
+Use ``-run-with user=..`` instead.
+
+
User-mode emulator command line arguments
-----------------------------------------
diff --git a/system/vl.c b/system/vl.c
index 0843b7ab49..3c5bd36d7d 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -3611,15 +3611,6 @@ void qemu_init(int argc, char **argv)
/* Nothing to be parsed here. Especially, do not error out below. */
break;
#if defined(CONFIG_POSIX)
- case QEMU_OPTION_runas:
- warn_report("-runas is deprecated, use '-run-with user=...' instead");
- if (!os_set_runas(optarg)) {
- error_report("User \"%s\" doesn't exist"
- " (and is not <uid>:<gid>)",
- optarg);
- exit(1);
- }
- break;
case QEMU_OPTION_daemonize:
os_set_daemonize(true);
break;
diff --git a/qemu-options.hx b/qemu-options.hx
index cc694d3b89..7090d59f6f 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -4976,19 +4976,6 @@ SRST
``-nodefaults`` option will disable all those default devices.
ERST
-#ifndef _WIN32
-DEF("runas", HAS_ARG, QEMU_OPTION_runas, \
- "-runas user change to user id user just before starting the VM\n" \
- " user can be numeric uid:gid instead\n",
- QEMU_ARCH_ALL)
-#endif
-SRST
-``-runas user``
- Immediately before starting guest execution, drop root privileges,
- switching to the specified user. This option is deprecated, use
- ``-run-with user=...`` instead.
-ERST
-
DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
"-prom-env variable=value\n"
" set OpenBIOS nvram variables\n",
@@ -5176,7 +5163,7 @@ SRST
``chroot=dir`` can be used for doing a chroot to the specified directory
immediately before starting the guest execution. This is especially useful
- in combination with -runas.
+ in combination with ``user=...``.
``user=username`` or ``user=uid:gid`` can be used to drop root privileges
before starting guest execution. QEMU will use the ``setuid`` and ``setgid``
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 13/14] docs/about/deprecated: Remove paragraph about initial deprecation in 2.10
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (11 preceding siblings ...)
2025-01-08 8:45 ` [PULL 12/14] Remove the deprecated "-runas" command line option Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 8:45 ` [PULL 14/14] tests/functional/test_x86_64_hotplug_cpu: Fix race condition during unplug Thomas Huth
2025-01-08 19:14 ` [PULL 00/14] Fixes for tests and removal of deprecated features Stefan Hajnoczi
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Daniel P. Berrangé
When we introduced the deprecation rule of keeping deprecated features
for two more releases, we had to state that we would not remove features
by surprise that had already been marked as deprecated before. Nowadays,
this paragraph is not needed anymore, so we can remove it now.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20250103145702.597139-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
docs/about/deprecated.rst | 6 ------
1 file changed, 6 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 63b46fd520..4a3c302962 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -24,12 +24,6 @@ should exclusively use a non-deprecated machine type, with use of the most
recent version highly recommended. Non-versioned machine types follow the
general feature deprecation policy.
-Prior to the 2.10.0 release there was no official policy on how
-long features would be deprecated prior to their removal, nor
-any documented list of which features were deprecated. Thus
-any features deprecated prior to 2.10.0 will be treated as if
-they were first deprecated in the 2.10.0 release.
-
What follows is a list of all features currently marked as
deprecated.
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PULL 14/14] tests/functional/test_x86_64_hotplug_cpu: Fix race condition during unplug
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (12 preceding siblings ...)
2025-01-08 8:45 ` [PULL 13/14] docs/about/deprecated: Remove paragraph about initial deprecation in 2.10 Thomas Huth
@ 2025-01-08 8:45 ` Thomas Huth
2025-01-08 19:14 ` [PULL 00/14] Fixes for tests and removal of deprecated features Stefan Hajnoczi
14 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2025-01-08 8:45 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Hajnoczi, Stefan Hajnoczi
When unplugging the CPU, the test tries to check for a successful
unplug by changing to the /sys/devices/system/cpu/cpu1 directory
to see whether that fails. However, the "cd" could be faster than
the unplug operation in the kernel, so there is a race condition
and the test sometimes fails here.
Fix it by trying to change the directory in a loop until the the
CPU has really been unplugged.
While we're at it, also add a "cd .." before unplugging to make
the console output a little bit less confusing (since the path
is echoed in the shell prompt).
Reported-by: Stefan Hajnoczi <stefanha@gmail.com>
Message-ID: <20250107115245.52755-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/functional/test_x86_64_hotplug_cpu.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tests/functional/test_x86_64_hotplug_cpu.py b/tests/functional/test_x86_64_hotplug_cpu.py
index b1d5156c72..7b9200ac2e 100755
--- a/tests/functional/test_x86_64_hotplug_cpu.py
+++ b/tests/functional/test_x86_64_hotplug_cpu.py
@@ -59,11 +59,13 @@ def test_hotplug(self):
'cd /sys/devices/system/cpu/cpu1',
'cpu1#')
+ exec_command_and_wait_for_pattern(self, 'cd ..', prompt)
self.vm.cmd('device_del', id='c1')
exec_command_and_wait_for_pattern(self,
- 'cd /sys/devices/system/cpu/cpu1',
- 'No such file or directory')
+ 'while cd /sys/devices/system/cpu/cpu1 ;'
+ ' do sleep 0.2 ; done',
+ 'No such file or directory')
if __name__ == '__main__':
LinuxKernelTest.main()
--
2.47.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PULL 00/14] Fixes for tests and removal of deprecated features
2025-01-08 8:44 [PULL 00/14] Fixes for tests and removal of deprecated features Thomas Huth
` (13 preceding siblings ...)
2025-01-08 8:45 ` [PULL 14/14] tests/functional/test_x86_64_hotplug_cpu: Fix race condition during unplug Thomas Huth
@ 2025-01-08 19:14 ` Stefan Hajnoczi
14 siblings, 0 replies; 16+ messages in thread
From: Stefan Hajnoczi @ 2025-01-08 19:14 UTC (permalink / raw)
To: Thomas Huth; +Cc: qemu-devel, Stefan Hajnoczi
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/10.0 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread