* Mon Jul 01 2024 Miroslav Rezanina <mrezanin@redhat.com> - 9.0.0-3
- kvm-qtest-x86-numa-test-do-not-use-the-obsolete-pentium-.patch [RHEL-28972] - kvm-tests-qtest-libqtest-add-qtest_has_cpu_model-api.patch [RHEL-28972] - kvm-tests-qtest-x86-check-for-availability-of-older-cpu-.patch [RHEL-28972] - kvm-target-cpu-models-x86-Remove-the-existing-deprecated.patch [RHEL-28972] - kvm-x86-cpu-deprecate-cpu-models-that-do-not-support-x86.patch [RHEL-28971] - kvm-virtio-gpu-fix-v2-migration.patch [RHEL-36329] - kvm-rhel-9.4.0-machine-type-compat-for-virtio-gpu-migrat.patch [RHEL-36329] - kvm-s390x-remove-deprecated-rhel-machine-types.patch [RHEL-39898] - kvm-s390x-select-correct-components-for-no-board-build.patch [RHEL-39898] - kvm-target-s390x-Add-a-CONFIG-switch-to-disable-legacy-C.patch [RHEL-39898] - kvm-target-s390x-cpu_models-Disable-everything-up-to-the.patch [RHEL-39898] - kvm-target-s390x-Revert-the-old-s390x-CPU-model-disablem.patch [RHEL-39898] - kvm-Revert-monitor-use-aio_co_reschedule_self.patch [RHEL-43409 RHEL-43410] - kvm-aio-warn-about-iohandler_ctx-special-casing.patch [RHEL-43409 RHEL-43410] - Resolves: RHEL-28972 (x86: Remove the existing deprecated CPU models on RHEL10) - Resolves: RHEL-28971 (Consider deprecating CPU models like "Nehalem" / "IvyBridge" on RHEL 10) - Resolves: RHEL-36329 ([RHEL10.0.beta][stable_guest_abi]Failed to migrate VM with (qemu) qemu-kvm: Missing section footer for 0000:00:01.0/virtio-gpu qemu-kvm: load of migration failed: Invalid argument) - Resolves: RHEL-39898 (s390: Remove the legacy CPU models on RHEL10) - Resolves: RHEL-43409 (aio=io_uring: Assertion failure `luringcb->co->ctx == s->aio_context' with block_resize) - Resolves: RHEL-43410 (aio=native: Assertion failure `laiocb->co->ctx == laiocb->ctx->aio_context' with block_resize)
This commit is contained in:
parent
42c616f27b
commit
7fbe0e6b6e
67
kvm-Revert-monitor-use-aio_co_reschedule_self.patch
Normal file
67
kvm-Revert-monitor-use-aio_co_reschedule_self.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
From 53cc7daf2b6356f236a493cbe63d01afc5636fd3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Date: Mon, 6 May 2024 15:06:21 -0400
|
||||||
|
Subject: [PATCH 13/14] Revert "monitor: use aio_co_reschedule_self()"
|
||||||
|
|
||||||
|
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
RH-MergeRequest: 253: Revert "monitor: use aio_co_reschedule_self()"
|
||||||
|
RH-Jira: RHEL-43409 RHEL-43410
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Acked-by: Hanna Czenczek <hreitz@redhat.com>
|
||||||
|
RH-Commit: [1/2] 772eccc9da09e6c1793d46ab6cf9ee6615812154 (kmwolf/centos-qemu-kvm)
|
||||||
|
|
||||||
|
Commit 1f25c172f837 ("monitor: use aio_co_reschedule_self()") was a code
|
||||||
|
cleanup that uses aio_co_reschedule_self() instead of open coding
|
||||||
|
coroutine rescheduling.
|
||||||
|
|
||||||
|
Bug RHEL-34618 was reported and Kevin Wolf <kwolf@redhat.com> identified
|
||||||
|
the root cause. I missed that aio_co_reschedule_self() ->
|
||||||
|
qemu_get_current_aio_context() only knows about
|
||||||
|
qemu_aio_context/IOThread AioContexts and not about iohandler_ctx. It
|
||||||
|
does not function correctly when going back from the iohandler_ctx to
|
||||||
|
qemu_aio_context.
|
||||||
|
|
||||||
|
Go back to open coding the AioContext transitions to avoid this bug.
|
||||||
|
|
||||||
|
This reverts commit 1f25c172f83704e350c0829438d832384084a74d.
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Buglink: https://issues.redhat.com/browse/RHEL-34618
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Message-ID: <20240506190622.56095-2-stefanha@redhat.com>
|
||||||
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
(cherry picked from commit 719c6819ed9a9838520fa732f9861918dc693bda)
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
---
|
||||||
|
qapi/qmp-dispatch.c | 7 +++++--
|
||||||
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c
|
||||||
|
index f3488afeef..176b549473 100644
|
||||||
|
--- a/qapi/qmp-dispatch.c
|
||||||
|
+++ b/qapi/qmp-dispatch.c
|
||||||
|
@@ -212,7 +212,8 @@ QDict *coroutine_mixed_fn qmp_dispatch(const QmpCommandList *cmds, QObject *requ
|
||||||
|
* executing the command handler so that it can make progress if it
|
||||||
|
* involves an AIO_WAIT_WHILE().
|
||||||
|
*/
|
||||||
|
- aio_co_reschedule_self(qemu_get_aio_context());
|
||||||
|
+ aio_co_schedule(qemu_get_aio_context(), qemu_coroutine_self());
|
||||||
|
+ qemu_coroutine_yield();
|
||||||
|
}
|
||||||
|
|
||||||
|
monitor_set_cur(qemu_coroutine_self(), cur_mon);
|
||||||
|
@@ -226,7 +227,9 @@ QDict *coroutine_mixed_fn qmp_dispatch(const QmpCommandList *cmds, QObject *requ
|
||||||
|
* Move back to iohandler_ctx so that nested event loops for
|
||||||
|
* qemu_aio_context don't start new monitor commands.
|
||||||
|
*/
|
||||||
|
- aio_co_reschedule_self(iohandler_get_aio_context());
|
||||||
|
+ aio_co_schedule(iohandler_get_aio_context(),
|
||||||
|
+ qemu_coroutine_self());
|
||||||
|
+ qemu_coroutine_yield();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
64
kvm-aio-warn-about-iohandler_ctx-special-casing.patch
Normal file
64
kvm-aio-warn-about-iohandler_ctx-special-casing.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
From 6c8da957fd534b3546354a8b8252c01cf9ee3511 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Date: Mon, 6 May 2024 15:06:22 -0400
|
||||||
|
Subject: [PATCH 14/14] aio: warn about iohandler_ctx special casing
|
||||||
|
|
||||||
|
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
RH-MergeRequest: 253: Revert "monitor: use aio_co_reschedule_self()"
|
||||||
|
RH-Jira: RHEL-43409 RHEL-43410
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Acked-by: Hanna Czenczek <hreitz@redhat.com>
|
||||||
|
RH-Commit: [2/2] 895231553731f09f51275c1abbf50c3440fe977f (kmwolf/centos-qemu-kvm)
|
||||||
|
|
||||||
|
The main loop has two AioContexts: qemu_aio_context and iohandler_ctx.
|
||||||
|
The main loop runs them both, but nested aio_poll() calls on
|
||||||
|
qemu_aio_context exclude iohandler_ctx.
|
||||||
|
|
||||||
|
Which one should qemu_get_current_aio_context() return when called from
|
||||||
|
the main loop? Document that it's always qemu_aio_context.
|
||||||
|
|
||||||
|
This has subtle effects on functions that use
|
||||||
|
qemu_get_current_aio_context(). For example, aio_co_reschedule_self()
|
||||||
|
does not work when moving from iohandler_ctx to qemu_aio_context because
|
||||||
|
qemu_get_current_aio_context() does not differentiate these two
|
||||||
|
AioContexts.
|
||||||
|
|
||||||
|
Document this in order to reduce the chance of future bugs.
|
||||||
|
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Message-ID: <20240506190622.56095-3-stefanha@redhat.com>
|
||||||
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
(cherry picked from commit e669e800fc9ef8806af5c5578249ab758a4f8a5a)
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
---
|
||||||
|
include/block/aio.h | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/include/block/aio.h b/include/block/aio.h
|
||||||
|
index 8378553eb9..4ee81936ed 100644
|
||||||
|
--- a/include/block/aio.h
|
||||||
|
+++ b/include/block/aio.h
|
||||||
|
@@ -629,6 +629,9 @@ void aio_co_schedule(AioContext *ctx, Coroutine *co);
|
||||||
|
*
|
||||||
|
* Move the currently running coroutine to new_ctx. If the coroutine is already
|
||||||
|
* running in new_ctx, do nothing.
|
||||||
|
+ *
|
||||||
|
+ * Note that this function cannot reschedule from iohandler_ctx to
|
||||||
|
+ * qemu_aio_context.
|
||||||
|
*/
|
||||||
|
void coroutine_fn aio_co_reschedule_self(AioContext *new_ctx);
|
||||||
|
|
||||||
|
@@ -661,6 +664,9 @@ void aio_co_enter(AioContext *ctx, Coroutine *co);
|
||||||
|
* If called from an IOThread this will be the IOThread's AioContext. If
|
||||||
|
* called from the main thread or with the "big QEMU lock" taken it
|
||||||
|
* will be the main loop AioContext.
|
||||||
|
+ *
|
||||||
|
+ * Note that the return value is never the main loop's iohandler_ctx and the
|
||||||
|
+ * return value is the main loop AioContext instead.
|
||||||
|
*/
|
||||||
|
AioContext *qemu_get_current_aio_context(void);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,46 @@
|
|||||||
|
From 2c7512b27b8d8862e26c6e07169752078513f40c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Date: Mon, 10 Jun 2024 21:22:58 +0530
|
||||||
|
Subject: [PATCH 01/14] qtest/x86/numa-test: do not use the obsolete 'pentium'
|
||||||
|
cpu
|
||||||
|
|
||||||
|
RH-Author: Ani Sinha <anisinha@redhat.com>
|
||||||
|
RH-MergeRequest: 243: target/cpu-models/x86: Remove the existing deprecated CPU models on c10s
|
||||||
|
RH-Jira: RHEL-28972
|
||||||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
RH-Acked-by: MST <mst@redhat.com>
|
||||||
|
RH-Commit: [1/4] a9b38ebd4e772a0a1fe40301a6f1abab6b961cd7 (anisinha/centos-qemu-kvm)
|
||||||
|
|
||||||
|
'pentium' cpu is old and obsolete and should be avoided for running tests if
|
||||||
|
its not strictly needed. Use 'max' cpu instead for generic non-cpu specific
|
||||||
|
numa test.
|
||||||
|
|
||||||
|
Reviewed-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
Tested-by: Mario Casquero <mcasquer@redhat.com>
|
||||||
|
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Message-ID: <20240610155303.7933-2-anisinha@redhat.com>
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
(cherry picked from commit 07c8d9ac0fa30712fdf78046a7998ee8d2231d6f)
|
||||||
|
---
|
||||||
|
tests/qtest/numa-test.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c
|
||||||
|
index 4f4404a4b1..a512f743c4 100644
|
||||||
|
--- a/tests/qtest/numa-test.c
|
||||||
|
+++ b/tests/qtest/numa-test.c
|
||||||
|
@@ -125,7 +125,8 @@ static void pc_numa_cpu(const void *data)
|
||||||
|
QTestState *qts;
|
||||||
|
g_autofree char *cli = NULL;
|
||||||
|
|
||||||
|
- cli = make_cli(data, "-cpu pentium -machine smp.cpus=8,smp.sockets=2,smp.cores=2,smp.threads=2 "
|
||||||
|
+ cli = make_cli(data,
|
||||||
|
+ "-cpu max -machine smp.cpus=8,smp.sockets=2,smp.cores=2,smp.threads=2 "
|
||||||
|
"-numa node,nodeid=0,memdev=ram -numa node,nodeid=1 "
|
||||||
|
"-numa cpu,node-id=1,socket-id=0 "
|
||||||
|
"-numa cpu,node-id=0,socket-id=1,core-id=0 "
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 44ee061e1904c20cae9cab5e8a62f1b506395383 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||||
|
Date: Wed, 5 Jun 2024 10:28:20 +0400
|
||||||
|
Subject: [PATCH 07/14] rhel 9.4.0 machine type compat for virtio-gpu migration
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
RH-MergeRequest: 250: virtio-gpu: fix v2 migration
|
||||||
|
RH-Jira: RHEL-36329
|
||||||
|
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [2/2] 66c98702c691e3454377f5a98230fd1f619a9a87 (marcandre.lureau-rh/qemu-kvm-centos)
|
||||||
|
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
---
|
||||||
|
hw/core/machine.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
||||||
|
index cf1d7faaaf..92609aae27 100644
|
||||||
|
--- a/hw/core/machine.c
|
||||||
|
+++ b/hw/core/machine.c
|
||||||
|
@@ -310,6 +310,8 @@ GlobalProperty hw_compat_rhel_9_5[] = {
|
||||||
|
{ TYPE_VIRTIO_IOMMU_PCI, "granule", "4k" },
|
||||||
|
/* hw_compat_rhel_9_5 from hw_compat_8_2 */
|
||||||
|
{ TYPE_VIRTIO_IOMMU_PCI, "aw-bits", "64" },
|
||||||
|
+ /* hw_compat_rhel_9_5 from hw_compat_8_2 */
|
||||||
|
+ { "virtio-gpu-device", "x-scanout-vmstate-version", "1" },
|
||||||
|
};
|
||||||
|
const size_t hw_compat_rhel_9_5_len = G_N_ELEMENTS(hw_compat_rhel_9_5);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
164
kvm-s390x-remove-deprecated-rhel-machine-types.patch
Normal file
164
kvm-s390x-remove-deprecated-rhel-machine-types.patch
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
From eb773f38d127117597a1640cd623f1fcd000c067 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Ott <sebott@redhat.com>
|
||||||
|
Date: Fri, 19 Apr 2024 16:37:57 +0200
|
||||||
|
Subject: [PATCH 08/14] s390x: remove deprecated rhel machine types
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-MergeRequest: 252: s390x: remove legacy CPU types
|
||||||
|
RH-Jira: RHEL-39898
|
||||||
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [1/5] 5ed0651c38584980b1fe51592a788032526c0f2f (thuth/qemu-kvm-cs9)
|
||||||
|
|
||||||
|
Upstream-status: N/A
|
||||||
|
|
||||||
|
Remove the following deprecated s390x rhel specific machine types:
|
||||||
|
s390-ccw-virtio-rhel8.6.0
|
||||||
|
s390-ccw-virtio-rhel8.5.0
|
||||||
|
s390-ccw-virtio-rhel8.4.0
|
||||||
|
s390-ccw-virtio-rhel8.2.0
|
||||||
|
s390-ccw-virtio-rhel7.6.0
|
||||||
|
|
||||||
|
Signed-off-by: Sebastian Ott <sebott@redhat.com>
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
---
|
||||||
|
hw/s390x/s390-virtio-ccw.c | 106 +------------------------------------
|
||||||
|
1 file changed, 2 insertions(+), 104 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
|
||||||
|
index 9ad54682c6..b0b903b78c 100644
|
||||||
|
--- a/hw/s390x/s390-virtio-ccw.c
|
||||||
|
+++ b/hw/s390x/s390-virtio-ccw.c
|
||||||
|
@@ -610,6 +610,7 @@ static void s390_nmi(NMIState *n, int cpu_index, Error **errp)
|
||||||
|
s390_cpu_restart(S390_CPU(cs));
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if 0 /* Disabled for Red Hat Enterprise Linux */
|
||||||
|
static ram_addr_t s390_fixup_ram_size(ram_addr_t sz)
|
||||||
|
{
|
||||||
|
/* same logic as in sclp.c */
|
||||||
|
@@ -629,6 +630,7 @@ static ram_addr_t s390_fixup_ram_size(ram_addr_t sz)
|
||||||
|
}
|
||||||
|
return newsz;
|
||||||
|
}
|
||||||
|
+#endif /* disabled for RHEL */
|
||||||
|
|
||||||
|
static inline bool machine_get_aes_key_wrap(Object *obj, Error **errp)
|
||||||
|
{
|
||||||
|
@@ -1329,110 +1331,6 @@ static void ccw_machine_rhel900_class_options(MachineClass *mc)
|
||||||
|
}
|
||||||
|
DEFINE_CCW_MACHINE(rhel900, "rhel9.0.0", false);
|
||||||
|
|
||||||
|
-static void ccw_machine_rhel860_instance_options(MachineState *machine)
|
||||||
|
-{
|
||||||
|
- /* Note: The -rhel8.6.0 and -rhel9.0.0 machines are technically identical */
|
||||||
|
- ccw_machine_rhel900_instance_options(machine);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel860_class_options(MachineClass *mc)
|
||||||
|
-{
|
||||||
|
- static GlobalProperty compat[] = {
|
||||||
|
- { TYPE_S390_PCI_DEVICE, "interpret", "on", },
|
||||||
|
- { TYPE_S390_PCI_DEVICE, "forwarding-assist", "on", },
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- ccw_machine_rhel900_class_options(mc);
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_6, hw_compat_rhel_8_6_len);
|
||||||
|
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
|
||||||
|
-
|
||||||
|
- /* All RHEL machines for prior major releases are deprecated */
|
||||||
|
- mc->deprecation_reason = rhel_old_machine_deprecation;
|
||||||
|
-}
|
||||||
|
-DEFINE_CCW_MACHINE(rhel860, "rhel8.6.0", false);
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel850_instance_options(MachineState *machine)
|
||||||
|
-{
|
||||||
|
- static const S390FeatInit qemu_cpu_feat = { S390_FEAT_LIST_QEMU_V6_0 };
|
||||||
|
-
|
||||||
|
- ccw_machine_rhel860_instance_options(machine);
|
||||||
|
-
|
||||||
|
- s390_set_qemu_cpu_model(0x2964, 13, 2, qemu_cpu_feat);
|
||||||
|
-
|
||||||
|
- s390_cpudef_featoff_greater(16, 1, S390_FEAT_NNPA);
|
||||||
|
- s390_cpudef_featoff_greater(16, 1, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2);
|
||||||
|
- s390_cpudef_featoff_greater(16, 1, S390_FEAT_BEAR_ENH);
|
||||||
|
- s390_cpudef_featoff_greater(16, 1, S390_FEAT_RDP);
|
||||||
|
- s390_cpudef_featoff_greater(16, 1, S390_FEAT_PAI);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel850_class_options(MachineClass *mc)
|
||||||
|
-{
|
||||||
|
- static GlobalProperty compat[] = {
|
||||||
|
- { TYPE_S390_PCI_DEVICE, "interpret", "off", },
|
||||||
|
- { TYPE_S390_PCI_DEVICE, "forwarding-assist", "off", },
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- ccw_machine_rhel860_class_options(mc);
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_5, hw_compat_rhel_8_5_len);
|
||||||
|
- compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
|
||||||
|
- mc->smp_props.prefer_sockets = true;
|
||||||
|
-}
|
||||||
|
-DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", false);
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel840_instance_options(MachineState *machine)
|
||||||
|
-{
|
||||||
|
- ccw_machine_rhel850_instance_options(machine);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel840_class_options(MachineClass *mc)
|
||||||
|
-{
|
||||||
|
- ccw_machine_rhel850_class_options(mc);
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_4, hw_compat_rhel_8_4_len);
|
||||||
|
-}
|
||||||
|
-DEFINE_CCW_MACHINE(rhel840, "rhel8.4.0", false);
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel820_instance_options(MachineState *machine)
|
||||||
|
-{
|
||||||
|
- ccw_machine_rhel840_instance_options(machine);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel820_class_options(MachineClass *mc)
|
||||||
|
-{
|
||||||
|
- ccw_machine_rhel840_class_options(mc);
|
||||||
|
- mc->fixup_ram_size = s390_fixup_ram_size;
|
||||||
|
- /* we did not publish a rhel8.3.0 machine */
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_3, hw_compat_rhel_8_3_len);
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_2, hw_compat_rhel_8_2_len);
|
||||||
|
-}
|
||||||
|
-DEFINE_CCW_MACHINE(rhel820, "rhel8.2.0", false);
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel760_instance_options(MachineState *machine)
|
||||||
|
-{
|
||||||
|
- static const S390FeatInit qemu_cpu_feat = { S390_FEAT_LIST_QEMU_V3_1 };
|
||||||
|
-
|
||||||
|
- ccw_machine_rhel820_instance_options(machine);
|
||||||
|
-
|
||||||
|
- s390_set_qemu_cpu_model(0x2827, 12, 2, qemu_cpu_feat);
|
||||||
|
-
|
||||||
|
- /* The multiple-epoch facility was not available with rhel7.6.0 on z14GA1 */
|
||||||
|
- s390_cpudef_featoff(14, 1, S390_FEAT_MULTIPLE_EPOCH);
|
||||||
|
- s390_cpudef_featoff(14, 1, S390_FEAT_PTFF_QSIE);
|
||||||
|
- s390_cpudef_featoff(14, 1, S390_FEAT_PTFF_QTOUE);
|
||||||
|
- s390_cpudef_featoff(14, 1, S390_FEAT_PTFF_STOE);
|
||||||
|
- s390_cpudef_featoff(14, 1, S390_FEAT_PTFF_STOUE);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void ccw_machine_rhel760_class_options(MachineClass *mc)
|
||||||
|
-{
|
||||||
|
- ccw_machine_rhel820_class_options(mc);
|
||||||
|
- /* We never published the s390x version of RHEL-AV 8.0 and 8.1, so add this here */
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_1, hw_compat_rhel_8_1_len);
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_8_0, hw_compat_rhel_8_0_len);
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_7_6, hw_compat_rhel_7_6_len);
|
||||||
|
-}
|
||||||
|
-DEFINE_CCW_MACHINE(rhel760, "rhel7.6.0", false);
|
||||||
|
-
|
||||||
|
static void ccw_machine_register_types(void)
|
||||||
|
{
|
||||||
|
type_register_static(&ccw_machine_info);
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
41
kvm-s390x-select-correct-components-for-no-board-build.patch
Normal file
41
kvm-s390x-select-correct-components-for-no-board-build.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From 874c2ad98804caf0db862c2a45db66a9bceb4fc4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Date: Thu, 9 May 2024 19:00:35 +0200
|
||||||
|
Subject: [PATCH 09/14] s390x: select correct components for no-board build
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-MergeRequest: 252: s390x: remove legacy CPU types
|
||||||
|
RH-Jira: RHEL-39898
|
||||||
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [2/5] 441dfae234f21f801ac9f9e417e96e2edff48bd4 (thuth/qemu-kvm-cs9)
|
||||||
|
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Reviewed-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
Message-ID: <20240509170044.190795-5-pbonzini@redhat.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
(cherry picked from commit e799b65faef129f2905bd9bf66c30aaaa7115dac)
|
||||||
|
Conflicts:
|
||||||
|
.gitlab-ci.d/buildtest.yml
|
||||||
|
(skipped the changes to the CI files, they don't apply and
|
||||||
|
are not needed in downstream)
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
---
|
||||||
|
target/s390x/Kconfig | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/target/s390x/Kconfig b/target/s390x/Kconfig
|
||||||
|
index 72da48136c..d886be48b4 100644
|
||||||
|
--- a/target/s390x/Kconfig
|
||||||
|
+++ b/target/s390x/Kconfig
|
||||||
|
@@ -1,2 +1,4 @@
|
||||||
|
config S390X
|
||||||
|
bool
|
||||||
|
+ select PCI
|
||||||
|
+ select S390_FLIC
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
From 0d3444e4ba998bbebce282fe1367ef16b635e3ae Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Date: Fri, 14 Jun 2024 13:34:47 +0530
|
||||||
|
Subject: [PATCH 04/14] target/cpu-models/x86: Remove the existing deprecated
|
||||||
|
CPU models on c10s
|
||||||
|
|
||||||
|
RH-Author: Ani Sinha <anisinha@redhat.com>
|
||||||
|
RH-MergeRequest: 243: target/cpu-models/x86: Remove the existing deprecated CPU models on c10s
|
||||||
|
RH-Jira: RHEL-28972
|
||||||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
RH-Acked-by: MST <mst@redhat.com>
|
||||||
|
RH-Commit: [4/4] ca6905d2f6cae5f120d3acef973cadb1164e0864 (anisinha/centos-qemu-kvm)
|
||||||
|
|
||||||
|
The cpu models that were deprecated in c9s can be removed in c10s. This change
|
||||||
|
compiled out these cpu models. For x86, 'qemu64' cpu model is still kept as is
|
||||||
|
as its the default cpu model.
|
||||||
|
|
||||||
|
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index be7b0663cd..c83d585c9b 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -2215,6 +2215,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
.xlevel = 0x8000000A,
|
||||||
|
.model_id = "QEMU Virtual CPU version " QEMU_HW_VERSION,
|
||||||
|
},
|
||||||
|
+#if 0 // Deprecated CPU models are removed in RHEL-10
|
||||||
|
{
|
||||||
|
.name = "phenom",
|
||||||
|
.deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
@@ -2593,6 +2594,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
.xlevel = 0x80000008,
|
||||||
|
.model_id = "Intel Core 2 Duo P9xxx (Penryn Class Core 2)",
|
||||||
|
},
|
||||||
|
+#endif // Removal of deprecated CPU models in RHEL-10
|
||||||
|
{
|
||||||
|
.name = "Nehalem",
|
||||||
|
.level = 11,
|
||||||
|
@@ -4410,6 +4412,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
.xlevel = 0x80000008,
|
||||||
|
.model_id = "Intel Xeon Phi Processor (Knights Mill)",
|
||||||
|
},
|
||||||
|
+#if 0 // Deprecated CPU models are removed in RHEL-10
|
||||||
|
{
|
||||||
|
.name = "Opteron_G1",
|
||||||
|
.deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
@@ -4480,6 +4483,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
.xlevel = 0x80000008,
|
||||||
|
.model_id = "AMD Opteron 23xx (Gen 3 Class Opteron)",
|
||||||
|
},
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
.name = "Opteron_G4",
|
||||||
|
.level = 0xd,
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
116
kvm-target-s390x-Add-a-CONFIG-switch-to-disable-legacy-C.patch
Normal file
116
kvm-target-s390x-Add-a-CONFIG-switch-to-disable-legacy-C.patch
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
From d0f88c7a0c95b4d9ab03221400736cb17cb4b995 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Huth <thuth@redhat.com>
|
||||||
|
Date: Thu, 13 Jun 2024 16:14:22 +0200
|
||||||
|
Subject: [PATCH 10/14] target/s390x: Add a CONFIG switch to disable legacy
|
||||||
|
CPUs
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-MergeRequest: 252: s390x: remove legacy CPU types
|
||||||
|
RH-Jira: RHEL-39898
|
||||||
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [3/5] f8e78c8e0349c8645e7df7b0bebed1635865b454 (thuth/qemu-kvm-cs9)
|
||||||
|
|
||||||
|
The oldest model that IBM still supports is the z13. Considering
|
||||||
|
that each generation can "emulate" the previous two generations
|
||||||
|
in hardware (via the "IBC" feature of the CPUs), this means that
|
||||||
|
everything that is older than z114/196 is not an officially supported
|
||||||
|
CPU model anymore. The Linux kernel still support the z10, so if
|
||||||
|
we also take this into account, everything older than that can
|
||||||
|
definitely be considered as a legacy CPU model.
|
||||||
|
|
||||||
|
For downstream builds of QEMU, we would like to be able to disable
|
||||||
|
these legacy CPUs in the build. Thus add a CONFIG switch that can be
|
||||||
|
used to disable them (and old machine types that use them by default).
|
||||||
|
|
||||||
|
Message-Id: <20240614125019.588928-1-thuth@redhat.com>
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
(cherry picked from commit d6a7c3f44cf3f60c066dbf087ef79d4b12acc642)
|
||||||
|
---
|
||||||
|
hw/s390x/s390-virtio-ccw.c | 4 ++++
|
||||||
|
target/s390x/Kconfig | 5 +++++
|
||||||
|
target/s390x/cpu_models.c | 9 +++++++++
|
||||||
|
3 files changed, 18 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
|
||||||
|
index b0b903b78c..527b05d1d6 100644
|
||||||
|
--- a/hw/s390x/s390-virtio-ccw.c
|
||||||
|
+++ b/hw/s390x/s390-virtio-ccw.c
|
||||||
|
@@ -46,6 +46,7 @@
|
||||||
|
#include "migration/blocker.h"
|
||||||
|
#include "qapi/visitor.h"
|
||||||
|
#include "hw/s390x/cpu-topology.h"
|
||||||
|
+#include CONFIG_DEVICES
|
||||||
|
|
||||||
|
static Error *pv_mig_blocker;
|
||||||
|
|
||||||
|
@@ -1130,6 +1131,8 @@ static void ccw_machine_2_12_class_options(MachineClass *mc)
|
||||||
|
}
|
||||||
|
DEFINE_CCW_MACHINE(2_12, "2.12", false);
|
||||||
|
|
||||||
|
+#ifdef CONFIG_S390X_LEGACY_CPUS
|
||||||
|
+
|
||||||
|
static void ccw_machine_2_11_instance_options(MachineState *machine)
|
||||||
|
{
|
||||||
|
static const S390FeatInit qemu_cpu_feat = { S390_FEAT_LIST_QEMU_V2_11 };
|
||||||
|
@@ -1277,6 +1280,7 @@ static void ccw_machine_2_4_class_options(MachineClass *mc)
|
||||||
|
DEFINE_CCW_MACHINE(2_4, "2.4", false);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static void ccw_machine_rhel940_instance_options(MachineState *machine)
|
||||||
|
{
|
||||||
|
diff --git a/target/s390x/Kconfig b/target/s390x/Kconfig
|
||||||
|
index d886be48b4..8a95f2bc3f 100644
|
||||||
|
--- a/target/s390x/Kconfig
|
||||||
|
+++ b/target/s390x/Kconfig
|
||||||
|
@@ -2,3 +2,8 @@ config S390X
|
||||||
|
bool
|
||||||
|
select PCI
|
||||||
|
select S390_FLIC
|
||||||
|
+
|
||||||
|
+config S390X_LEGACY_CPUS
|
||||||
|
+ bool
|
||||||
|
+ default y
|
||||||
|
+ depends on S390X
|
||||||
|
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||||
|
index 370b3b3065..f4dbcc67bb 100644
|
||||||
|
--- a/target/s390x/cpu_models.c
|
||||||
|
+++ b/target/s390x/cpu_models.c
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
#include "sysemu/sysemu.h"
|
||||||
|
#include "target/s390x/kvm/pv.h"
|
||||||
|
+#include CONFIG_DEVICES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CPUDEF_INIT(_type, _gen, _ec_ga, _mha_pow, _hmfai, _name, _desc) \
|
||||||
|
@@ -50,6 +51,13 @@
|
||||||
|
#define RHEL_CPU_DEPRECATION "use at least 'z14', or 'host' / 'qemu' / 'max'"
|
||||||
|
|
||||||
|
static S390CPUDef s390_cpu_defs[] = {
|
||||||
|
+ /*
|
||||||
|
+ * Linux requires at least z10 nowadays, and IBM only supports recent CPUs
|
||||||
|
+ * (see https://www.ibm.com/support/pages/ibm-mainframe-life-cycle-history),
|
||||||
|
+ * so we consider older CPUs as legacy that can optionally be disabled via
|
||||||
|
+ * the CONFIG_S390X_LEGACY_CPUS config switch.
|
||||||
|
+ */
|
||||||
|
+#if defined(CONFIG_S390X_LEGACY_CPUS) || defined(CONFIG_USER_ONLY)
|
||||||
|
CPUDEF_INIT(0x2064, 7, 1, 38, 0x00000000U, "z900", "IBM zSeries 900 GA1"),
|
||||||
|
CPUDEF_INIT(0x2064, 7, 2, 38, 0x00000000U, "z900.2", "IBM zSeries 900 GA2"),
|
||||||
|
CPUDEF_INIT(0x2064, 7, 3, 38, 0x00000000U, "z900.3", "IBM zSeries 900 GA3"),
|
||||||
|
@@ -67,6 +75,7 @@ static S390CPUDef s390_cpu_defs[] = {
|
||||||
|
CPUDEF_INIT(0x2096, 9, 2, 40, 0x00000000U, "z9BC", "IBM System z9 BC GA1"),
|
||||||
|
CPUDEF_INIT(0x2094, 9, 3, 40, 0x00000000U, "z9EC.3", "IBM System z9 EC GA3"),
|
||||||
|
CPUDEF_INIT(0x2096, 9, 3, 40, 0x00000000U, "z9BC.2", "IBM System z9 BC GA2"),
|
||||||
|
+#endif
|
||||||
|
CPUDEF_INIT(0x2097, 10, 1, 43, 0x00000000U, "z10EC", "IBM System z10 EC GA1"),
|
||||||
|
CPUDEF_INIT(0x2097, 10, 2, 43, 0x00000000U, "z10EC.2", "IBM System z10 EC GA2"),
|
||||||
|
CPUDEF_INIT(0x2098, 10, 2, 43, 0x00000000U, "z10BC", "IBM System z10 BC GA1"),
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From 64eecc611dfdb9252b5e9d20b96cba715ecc1d07 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Huth <thuth@redhat.com>
|
||||||
|
Date: Mon, 24 Jun 2024 14:26:14 +0200
|
||||||
|
Subject: [PATCH 12/14] target/s390x: Revert the old s390x CPU model
|
||||||
|
disablement code
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-MergeRequest: 252: s390x: remove legacy CPU types
|
||||||
|
RH-Jira: RHEL-39898
|
||||||
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [5/5] da022e5acaeb1c86fba6245aa2c20491ac83046f (thuth/qemu-kvm-cs9)
|
||||||
|
|
||||||
|
Upstream-Status: N/A
|
||||||
|
|
||||||
|
We now completely disable the old CPU models up to the z12 in
|
||||||
|
target/s390x/cpu_models.c, so we don't need these old checks
|
||||||
|
anymore.
|
||||||
|
|
||||||
|
This patch should get squashed into the downstream patch
|
||||||
|
"Enable/disable devices for RHEL" during the next rebase.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
---
|
||||||
|
target/s390x/cpu_models_sysemu.c | 3 ---
|
||||||
|
target/s390x/kvm/kvm.c | 7 -------
|
||||||
|
2 files changed, 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/target/s390x/cpu_models_sysemu.c b/target/s390x/cpu_models_sysemu.c
|
||||||
|
index ca2e5d91e2..906d5d42b7 100644
|
||||||
|
--- a/target/s390x/cpu_models_sysemu.c
|
||||||
|
+++ b/target/s390x/cpu_models_sysemu.c
|
||||||
|
@@ -34,9 +34,6 @@ static void check_unavailable_features(const S390CPUModel *max_model,
|
||||||
|
(max_model->def->gen == model->def->gen &&
|
||||||
|
max_model->def->ec_ga < model->def->ec_ga)) {
|
||||||
|
list_add_feat("type", unavailable);
|
||||||
|
- } else if (model->def->gen < 11 && kvm_enabled()) {
|
||||||
|
- /* Older CPU models are not supported on Red Hat Enterprise Linux */
|
||||||
|
- list_add_feat("type", unavailable);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* detect missing features if any to properly report them */
|
||||||
|
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
|
||||||
|
index 55fb4855b1..6dcb8dba2d 100644
|
||||||
|
--- a/target/s390x/kvm/kvm.c
|
||||||
|
+++ b/target/s390x/kvm/kvm.c
|
||||||
|
@@ -2566,13 +2566,6 @@ void kvm_s390_apply_cpu_model(const S390CPUModel *model, Error **errp)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* Older CPU models are not supported on Red Hat Enterprise Linux */
|
||||||
|
- if (model->def->gen < 11) {
|
||||||
|
- error_setg(errp, "KVM: Unsupported CPU type specified: %s",
|
||||||
|
- MACHINE(qdev_get_machine())->cpu_type);
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
prop.cpuid = s390_cpuid_from_cpu_model(model);
|
||||||
|
prop.ibc = s390_ibc_from_cpu_model(model);
|
||||||
|
/* configure cpu features indicated via STFL(e) */
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,56 @@
|
|||||||
|
From 947ee045103e9148c80a1df0dc300fc840df2680 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Huth <thuth@redhat.com>
|
||||||
|
Date: Mon, 24 Jun 2024 14:15:08 +0200
|
||||||
|
Subject: [PATCH 11/14] target/s390x/cpu_models: Disable everything up to the
|
||||||
|
z12 CPU model
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-MergeRequest: 252: s390x: remove legacy CPU types
|
||||||
|
RH-Jira: RHEL-39898
|
||||||
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [4/5] f5236c8041bfcb63df4046f7bb0a12c1fa90062d (thuth/qemu-kvm-cs9)
|
||||||
|
|
||||||
|
Upstream-Status: N/A
|
||||||
|
JIRA: https://issues.redhat.com/browse/RHEL-39898
|
||||||
|
|
||||||
|
When RHEL 10.0 gets released, the z14 will be the oldest mainframe
|
||||||
|
that is still officially supported by IBM, see:
|
||||||
|
https://www.ibm.com/support/pages/ibm-mainframe-life-cycle-history
|
||||||
|
|
||||||
|
Now each IBM Z machine can "emulate" the previous two CPU types in
|
||||||
|
hardware for virtual guests, so we should still allow the z12 and
|
||||||
|
z13 in our qemu-kvm builds, too. But everything that is older than
|
||||||
|
the z12 can be disabled now.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
---
|
||||||
|
target/s390x/cpu_models.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||||
|
index f4dbcc67bb..ad65149844 100644
|
||||||
|
--- a/target/s390x/cpu_models.c
|
||||||
|
+++ b/target/s390x/cpu_models.c
|
||||||
|
@@ -75,7 +75,6 @@ static S390CPUDef s390_cpu_defs[] = {
|
||||||
|
CPUDEF_INIT(0x2096, 9, 2, 40, 0x00000000U, "z9BC", "IBM System z9 BC GA1"),
|
||||||
|
CPUDEF_INIT(0x2094, 9, 3, 40, 0x00000000U, "z9EC.3", "IBM System z9 EC GA3"),
|
||||||
|
CPUDEF_INIT(0x2096, 9, 3, 40, 0x00000000U, "z9BC.2", "IBM System z9 BC GA2"),
|
||||||
|
-#endif
|
||||||
|
CPUDEF_INIT(0x2097, 10, 1, 43, 0x00000000U, "z10EC", "IBM System z10 EC GA1"),
|
||||||
|
CPUDEF_INIT(0x2097, 10, 2, 43, 0x00000000U, "z10EC.2", "IBM System z10 EC GA2"),
|
||||||
|
CPUDEF_INIT(0x2098, 10, 2, 43, 0x00000000U, "z10BC", "IBM System z10 BC GA1"),
|
||||||
|
@@ -84,6 +83,7 @@ static S390CPUDef s390_cpu_defs[] = {
|
||||||
|
CPUDEF_INIT(0x2817, 11, 1, 44, 0x08000000U, "z196", "IBM zEnterprise 196 GA1"),
|
||||||
|
CPUDEF_INIT(0x2817, 11, 2, 44, 0x08000000U, "z196.2", "IBM zEnterprise 196 GA2"),
|
||||||
|
CPUDEF_INIT(0x2818, 11, 2, 44, 0x08000000U, "z114", "IBM zEnterprise 114 GA1"),
|
||||||
|
+#endif
|
||||||
|
CPUDEF_INIT(0x2827, 12, 1, 44, 0x08000000U, "zEC12", "IBM zEnterprise EC12 GA1"),
|
||||||
|
CPUDEF_INIT(0x2827, 12, 2, 44, 0x08000000U, "zEC12.2", "IBM zEnterprise EC12 GA2"),
|
||||||
|
CPUDEF_INIT(0x2828, 12, 2, 44, 0x08000000U, "zBC12", "IBM zEnterprise BC12 GA1"),
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
162
kvm-tests-qtest-libqtest-add-qtest_has_cpu_model-api.patch
Normal file
162
kvm-tests-qtest-libqtest-add-qtest_has_cpu_model-api.patch
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
From 83bed1458ca3c0137658b53f0a1115d232091703 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Date: Mon, 10 Jun 2024 21:22:59 +0530
|
||||||
|
Subject: [PATCH 02/14] tests/qtest/libqtest: add qtest_has_cpu_model() api
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Ani Sinha <anisinha@redhat.com>
|
||||||
|
RH-MergeRequest: 243: target/cpu-models/x86: Remove the existing deprecated CPU models on c10s
|
||||||
|
RH-Jira: RHEL-28972
|
||||||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
RH-Acked-by: MST <mst@redhat.com>
|
||||||
|
RH-Commit: [2/4] af128c3ae0a563ca5e2b50bdbdf44f6ce1404aad (anisinha/centos-qemu-kvm)
|
||||||
|
|
||||||
|
Added a new test api qtest_has_cpu_model() in order to check availability of
|
||||||
|
some cpu models in the current QEMU binary. The specific architecture of the
|
||||||
|
QEMU binary is selected using the QTEST_QEMU_BINARY environment variable.
|
||||||
|
This api would be useful to run tests against some older cpu models after
|
||||||
|
checking if QEMU actually supported these models.
|
||||||
|
|
||||||
|
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Reviewed-by: Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
Message-ID: <20240610155303.7933-3-anisinha@redhat.com>
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
(cherry picked from commit f43f8abe457a4aa32441bd190638e1118d291c42)
|
||||||
|
---
|
||||||
|
tests/qtest/libqtest.c | 83 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
tests/qtest/libqtest.h | 8 ++++
|
||||||
|
2 files changed, 91 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
|
||||||
|
index d8f80d335e..18e2f7f282 100644
|
||||||
|
--- a/tests/qtest/libqtest.c
|
||||||
|
+++ b/tests/qtest/libqtest.c
|
||||||
|
@@ -37,6 +37,7 @@
|
||||||
|
#include "qapi/qmp/qjson.h"
|
||||||
|
#include "qapi/qmp/qlist.h"
|
||||||
|
#include "qapi/qmp/qstring.h"
|
||||||
|
+#include "qapi/qmp/qbool.h"
|
||||||
|
|
||||||
|
#define MAX_IRQ 256
|
||||||
|
|
||||||
|
@@ -1471,6 +1472,12 @@ struct MachInfo {
|
||||||
|
char *alias;
|
||||||
|
};
|
||||||
|
|
||||||
|
+struct CpuModel {
|
||||||
|
+ char *name;
|
||||||
|
+ char *alias_of;
|
||||||
|
+ bool deprecated;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
static void qtest_free_machine_list(struct MachInfo *machines)
|
||||||
|
{
|
||||||
|
if (machines) {
|
||||||
|
@@ -1550,6 +1557,82 @@ static struct MachInfo *qtest_get_machines(const char *var)
|
||||||
|
return machines;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static struct CpuModel *qtest_get_cpu_models(void)
|
||||||
|
+{
|
||||||
|
+ static struct CpuModel *cpus;
|
||||||
|
+ QDict *response, *minfo;
|
||||||
|
+ QList *list;
|
||||||
|
+ const QListEntry *p;
|
||||||
|
+ QObject *qobj;
|
||||||
|
+ QString *qstr;
|
||||||
|
+ QBool *qbool;
|
||||||
|
+ QTestState *qts;
|
||||||
|
+ int idx;
|
||||||
|
+
|
||||||
|
+ if (cpus) {
|
||||||
|
+ return cpus;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ silence_spawn_log = !g_test_verbose();
|
||||||
|
+
|
||||||
|
+ qts = qtest_init_with_env(NULL, "-machine none");
|
||||||
|
+ response = qtest_qmp(qts, "{ 'execute': 'query-cpu-definitions' }");
|
||||||
|
+ g_assert(response);
|
||||||
|
+ list = qdict_get_qlist(response, "return");
|
||||||
|
+ g_assert(list);
|
||||||
|
+
|
||||||
|
+ cpus = g_new0(struct CpuModel, qlist_size(list) + 1);
|
||||||
|
+
|
||||||
|
+ for (p = qlist_first(list), idx = 0; p; p = qlist_next(p), idx++) {
|
||||||
|
+ minfo = qobject_to(QDict, qlist_entry_obj(p));
|
||||||
|
+ g_assert(minfo);
|
||||||
|
+
|
||||||
|
+ qobj = qdict_get(minfo, "name");
|
||||||
|
+ g_assert(qobj);
|
||||||
|
+ qstr = qobject_to(QString, qobj);
|
||||||
|
+ g_assert(qstr);
|
||||||
|
+ cpus[idx].name = g_strdup(qstring_get_str(qstr));
|
||||||
|
+
|
||||||
|
+ qobj = qdict_get(minfo, "alias_of");
|
||||||
|
+ if (qobj) { /* old machines do not report aliases */
|
||||||
|
+ qstr = qobject_to(QString, qobj);
|
||||||
|
+ g_assert(qstr);
|
||||||
|
+ cpus[idx].alias_of = g_strdup(qstring_get_str(qstr));
|
||||||
|
+ } else {
|
||||||
|
+ cpus[idx].alias_of = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ qobj = qdict_get(minfo, "deprecated");
|
||||||
|
+ qbool = qobject_to(QBool, qobj);
|
||||||
|
+ g_assert(qbool);
|
||||||
|
+ cpus[idx].deprecated = qbool_get_bool(qbool);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ qtest_quit(qts);
|
||||||
|
+ qobject_unref(response);
|
||||||
|
+
|
||||||
|
+ silence_spawn_log = false;
|
||||||
|
+
|
||||||
|
+ return cpus;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+bool qtest_has_cpu_model(const char *cpu)
|
||||||
|
+{
|
||||||
|
+ struct CpuModel *cpus;
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ cpus = qtest_get_cpu_models();
|
||||||
|
+
|
||||||
|
+ for (i = 0; cpus[i].name != NULL; i++) {
|
||||||
|
+ if (g_str_equal(cpu, cpus[i].name) ||
|
||||||
|
+ (cpus[i].alias_of && g_str_equal(cpu, cpus[i].alias_of))) {
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return false;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void qtest_cb_for_every_machine(void (*cb)(const char *machine),
|
||||||
|
bool skip_old_versioned)
|
||||||
|
{
|
||||||
|
diff --git a/tests/qtest/libqtest.h b/tests/qtest/libqtest.h
|
||||||
|
index 6e3d3525bf..beb96b18eb 100644
|
||||||
|
--- a/tests/qtest/libqtest.h
|
||||||
|
+++ b/tests/qtest/libqtest.h
|
||||||
|
@@ -949,6 +949,14 @@ bool qtest_has_machine(const char *machine);
|
||||||
|
*/
|
||||||
|
bool qtest_has_machine_with_env(const char *var, const char *machine);
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * qtest_has_cpu_model:
|
||||||
|
+ * @cpu: The cpu to look for
|
||||||
|
+ *
|
||||||
|
+ * Returns: true if the cpu is available in the target binary.
|
||||||
|
+ */
|
||||||
|
+bool qtest_has_cpu_model(const char *cpu);
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* qtest_has_device:
|
||||||
|
* @device: The device to look for
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
359
kvm-tests-qtest-x86-check-for-availability-of-older-cpu-.patch
Normal file
359
kvm-tests-qtest-x86-check-for-availability-of-older-cpu-.patch
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
From 31bce7b3e6776e60e0994a45691bded22cc68476 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Date: Mon, 10 Jun 2024 21:23:00 +0530
|
||||||
|
Subject: [PATCH 03/14] tests/qtest/x86: check for availability of older cpu
|
||||||
|
models before running tests
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Ani Sinha <anisinha@redhat.com>
|
||||||
|
RH-MergeRequest: 243: target/cpu-models/x86: Remove the existing deprecated CPU models on c10s
|
||||||
|
RH-Jira: RHEL-28972
|
||||||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
RH-Acked-by: MST <mst@redhat.com>
|
||||||
|
RH-Commit: [3/4] 5a049fbd48fda9c1b2d74dc8b389c43547029df2 (anisinha/centos-qemu-kvm)
|
||||||
|
|
||||||
|
It is better to check if some older cpu models like 486, athlon, pentium,
|
||||||
|
penryn, phenom, core2duo etc are available before running their corresponding
|
||||||
|
tests. Some downstream distributions may no longer support these older cpu
|
||||||
|
models.
|
||||||
|
|
||||||
|
Signature of add_feature_test() has been modified to return void as
|
||||||
|
FeatureTestArgs* was not used by the caller.
|
||||||
|
|
||||||
|
One minor correction. Replaced 'phenom' with '486' in the test
|
||||||
|
'x86/cpuid/auto-level/phenom/arat' matching the cpu used.
|
||||||
|
|
||||||
|
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
Message-ID: <20240610155303.7933-4-anisinha@redhat.com>
|
||||||
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
(cherry picked from commit e08f6e0b9fcf708f641bbb8839b7e30d857989d9)
|
||||||
|
---
|
||||||
|
tests/qtest/test-x86-cpuid-compat.c | 170 ++++++++++++++++++----------
|
||||||
|
1 file changed, 108 insertions(+), 62 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c
|
||||||
|
index 6a39454fce..b9e7e5ef7b 100644
|
||||||
|
--- a/tests/qtest/test-x86-cpuid-compat.c
|
||||||
|
+++ b/tests/qtest/test-x86-cpuid-compat.c
|
||||||
|
@@ -67,10 +67,29 @@ static void test_cpuid_prop(const void *data)
|
||||||
|
g_free(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void add_cpuid_test(const char *name, const char *cmdline,
|
||||||
|
+static void add_cpuid_test(const char *name, const char *cpu,
|
||||||
|
+ const char *cpufeat, const char *machine,
|
||||||
|
const char *property, int64_t expected_value)
|
||||||
|
{
|
||||||
|
CpuidTestArgs *args = g_new0(CpuidTestArgs, 1);
|
||||||
|
+ char *cmdline;
|
||||||
|
+ char *save;
|
||||||
|
+
|
||||||
|
+ if (!qtest_has_cpu_model(cpu)) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ cmdline = g_strdup_printf("-cpu %s", cpu);
|
||||||
|
+
|
||||||
|
+ if (cpufeat) {
|
||||||
|
+ save = cmdline;
|
||||||
|
+ cmdline = g_strdup_printf("%s,%s", cmdline, cpufeat);
|
||||||
|
+ g_free(save);
|
||||||
|
+ }
|
||||||
|
+ if (machine) {
|
||||||
|
+ save = cmdline;
|
||||||
|
+ cmdline = g_strdup_printf("-machine %s %s", machine, cmdline);
|
||||||
|
+ g_free(save);
|
||||||
|
+ }
|
||||||
|
args->cmdline = cmdline;
|
||||||
|
args->property = property;
|
||||||
|
args->expected_value = expected_value;
|
||||||
|
@@ -149,12 +168,24 @@ static void test_feature_flag(const void *data)
|
||||||
|
* either "feature-words" or "filtered-features", when running QEMU
|
||||||
|
* using cmdline
|
||||||
|
*/
|
||||||
|
-static FeatureTestArgs *add_feature_test(const char *name, const char *cmdline,
|
||||||
|
- uint32_t eax, uint32_t ecx,
|
||||||
|
- const char *reg, int bitnr,
|
||||||
|
- bool expected_value)
|
||||||
|
+static void add_feature_test(const char *name, const char *cpu,
|
||||||
|
+ const char *cpufeat, uint32_t eax,
|
||||||
|
+ uint32_t ecx, const char *reg,
|
||||||
|
+ int bitnr, bool expected_value)
|
||||||
|
{
|
||||||
|
FeatureTestArgs *args = g_new0(FeatureTestArgs, 1);
|
||||||
|
+ char *cmdline;
|
||||||
|
+
|
||||||
|
+ if (!qtest_has_cpu_model(cpu)) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (cpufeat) {
|
||||||
|
+ cmdline = g_strdup_printf("-cpu %s,%s", cpu, cpufeat);
|
||||||
|
+ } else {
|
||||||
|
+ cmdline = g_strdup_printf("-cpu %s", cpu);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
args->cmdline = cmdline;
|
||||||
|
args->in_eax = eax;
|
||||||
|
args->in_ecx = ecx;
|
||||||
|
@@ -162,13 +193,17 @@ static FeatureTestArgs *add_feature_test(const char *name, const char *cmdline,
|
||||||
|
args->bitnr = bitnr;
|
||||||
|
args->expected_value = expected_value;
|
||||||
|
qtest_add_data_func(name, args, test_feature_flag);
|
||||||
|
- return args;
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_plus_minus_subprocess(void)
|
||||||
|
{
|
||||||
|
char *path;
|
||||||
|
|
||||||
|
+ if (!qtest_has_cpu_model("pentium")) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Rules:
|
||||||
|
* 1)"-foo" overrides "+foo"
|
||||||
|
* 2) "[+-]foo" overrides "foo=..."
|
||||||
|
@@ -198,6 +233,10 @@ static void test_plus_minus_subprocess(void)
|
||||||
|
|
||||||
|
static void test_plus_minus(void)
|
||||||
|
{
|
||||||
|
+ if (!qtest_has_cpu_model("pentium")) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
g_test_trap_subprocess("/x86/cpuid/parsing-plus-minus/subprocess", 0, 0);
|
||||||
|
g_test_trap_assert_passed();
|
||||||
|
g_test_trap_assert_stderr("*Ambiguous CPU model string. "
|
||||||
|
@@ -217,99 +256,105 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
|
/* Original level values for CPU models: */
|
||||||
|
add_cpuid_test("x86/cpuid/phenom/level",
|
||||||
|
- "-cpu phenom", "level", 5);
|
||||||
|
+ "phenom", NULL, NULL, "level", 5);
|
||||||
|
add_cpuid_test("x86/cpuid/Conroe/level",
|
||||||
|
- "-cpu Conroe", "level", 10);
|
||||||
|
+ "Conroe", NULL, NULL, "level", 10);
|
||||||
|
add_cpuid_test("x86/cpuid/SandyBridge/level",
|
||||||
|
- "-cpu SandyBridge", "level", 0xd);
|
||||||
|
+ "SandyBridge", NULL, NULL, "level", 0xd);
|
||||||
|
add_cpuid_test("x86/cpuid/486/xlevel",
|
||||||
|
- "-cpu 486", "xlevel", 0);
|
||||||
|
+ "486", NULL, NULL, "xlevel", 0);
|
||||||
|
add_cpuid_test("x86/cpuid/core2duo/xlevel",
|
||||||
|
- "-cpu core2duo", "xlevel", 0x80000008);
|
||||||
|
+ "core2duo", NULL, NULL, "xlevel", 0x80000008);
|
||||||
|
add_cpuid_test("x86/cpuid/phenom/xlevel",
|
||||||
|
- "-cpu phenom", "xlevel", 0x8000001A);
|
||||||
|
+ "phenom", NULL, NULL, "xlevel", 0x8000001A);
|
||||||
|
add_cpuid_test("x86/cpuid/athlon/xlevel",
|
||||||
|
- "-cpu athlon", "xlevel", 0x80000008);
|
||||||
|
+ "athlon", NULL, NULL, "xlevel", 0x80000008);
|
||||||
|
|
||||||
|
/* If level is not large enough, it should increase automatically: */
|
||||||
|
/* CPUID[6].EAX: */
|
||||||
|
- add_cpuid_test("x86/cpuid/auto-level/phenom/arat",
|
||||||
|
- "-cpu 486,arat=on", "level", 6);
|
||||||
|
+ add_cpuid_test("x86/cpuid/auto-level/486/arat",
|
||||||
|
+ "486", "arat=on", NULL, "level", 6);
|
||||||
|
/* CPUID[EAX=7,ECX=0].EBX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/phenom/fsgsbase",
|
||||||
|
- "-cpu phenom,fsgsbase=on", "level", 7);
|
||||||
|
+ "phenom", "fsgsbase=on", NULL, "level", 7);
|
||||||
|
/* CPUID[EAX=7,ECX=0].ECX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/phenom/avx512vbmi",
|
||||||
|
- "-cpu phenom,avx512vbmi=on", "level", 7);
|
||||||
|
+ "phenom", "avx512vbmi=on", NULL, "level", 7);
|
||||||
|
/* CPUID[EAX=0xd,ECX=1].EAX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/phenom/xsaveopt",
|
||||||
|
- "-cpu phenom,xsaveopt=on", "level", 0xd);
|
||||||
|
+ "phenom", "xsaveopt=on", NULL, "level", 0xd);
|
||||||
|
/* CPUID[8000_0001].EDX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/486/3dnow",
|
||||||
|
- "-cpu 486,3dnow=on", "xlevel", 0x80000001);
|
||||||
|
+ "486", "3dnow=on", NULL, "xlevel", 0x80000001);
|
||||||
|
/* CPUID[8000_0001].ECX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/486/sse4a",
|
||||||
|
- "-cpu 486,sse4a=on", "xlevel", 0x80000001);
|
||||||
|
+ "486", "sse4a=on", NULL, "xlevel", 0x80000001);
|
||||||
|
/* CPUID[8000_0007].EDX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/486/invtsc",
|
||||||
|
- "-cpu 486,invtsc=on", "xlevel", 0x80000007);
|
||||||
|
+ "486", "invtsc=on", NULL, "xlevel", 0x80000007);
|
||||||
|
/* CPUID[8000_000A].EDX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/486/npt",
|
||||||
|
- "-cpu 486,svm=on,npt=on", "xlevel", 0x8000000A);
|
||||||
|
+ "486", "svm=on,npt=on", NULL, "xlevel", 0x8000000A);
|
||||||
|
/* CPUID[C000_0001].EDX: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel2/phenom/xstore",
|
||||||
|
- "-cpu phenom,xstore=on", "xlevel2", 0xC0000001);
|
||||||
|
+ "phenom", "xstore=on", NULL, "xlevel2", 0xC0000001);
|
||||||
|
/* SVM needs CPUID[0x8000000A] */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/athlon/svm",
|
||||||
|
- "-cpu athlon,svm=on", "xlevel", 0x8000000A);
|
||||||
|
+ "athlon", "svm=on", NULL, "xlevel", 0x8000000A);
|
||||||
|
|
||||||
|
|
||||||
|
/* If level is already large enough, it shouldn't change: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/SandyBridge/multiple",
|
||||||
|
- "-cpu SandyBridge,arat=on,fsgsbase=on,avx512vbmi=on",
|
||||||
|
- "level", 0xd);
|
||||||
|
+ "SandyBridge", "arat=on,fsgsbase=on,avx512vbmi=on",
|
||||||
|
+ NULL, "level", 0xd);
|
||||||
|
/* If level is explicitly set, it shouldn't change: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/486/fixed/0xF",
|
||||||
|
- "-cpu 486,level=0xF,arat=on,fsgsbase=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
- "level", 0xF);
|
||||||
|
+ "486",
|
||||||
|
+ "level=0xF,arat=on,fsgsbase=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
+ NULL, "level", 0xF);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/486/fixed/2",
|
||||||
|
- "-cpu 486,level=2,arat=on,fsgsbase=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
- "level", 2);
|
||||||
|
+ "486",
|
||||||
|
+ "level=2,arat=on,fsgsbase=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
+ NULL, "level", 2);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/486/fixed/0",
|
||||||
|
- "-cpu 486,level=0,arat=on,fsgsbase=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
- "level", 0);
|
||||||
|
+ "486",
|
||||||
|
+ "level=0,arat=on,fsgsbase=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
+ NULL, "level", 0);
|
||||||
|
|
||||||
|
/* if xlevel is already large enough, it shouldn't change: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/phenom/3dnow",
|
||||||
|
- "-cpu phenom,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
- "xlevel", 0x8000001A);
|
||||||
|
+ "phenom", "3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
+ NULL, "xlevel", 0x8000001A);
|
||||||
|
/* If xlevel is explicitly set, it shouldn't change: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/486/fixed/80000002",
|
||||||
|
- "-cpu 486,xlevel=0x80000002,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
- "xlevel", 0x80000002);
|
||||||
|
+ "486",
|
||||||
|
+ "xlevel=0x80000002,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
+ NULL, "xlevel", 0x80000002);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/486/fixed/8000001A",
|
||||||
|
- "-cpu 486,xlevel=0x8000001A,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
- "xlevel", 0x8000001A);
|
||||||
|
+ "486",
|
||||||
|
+ "xlevel=0x8000001A,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
+ NULL, "xlevel", 0x8000001A);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/phenom/fixed/0",
|
||||||
|
- "-cpu 486,xlevel=0,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
- "xlevel", 0);
|
||||||
|
+ "486",
|
||||||
|
+ "xlevel=0,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
+ NULL, "xlevel", 0);
|
||||||
|
|
||||||
|
/* if xlevel2 is already large enough, it shouldn't change: */
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel2/486/fixed",
|
||||||
|
- "-cpu 486,xlevel2=0xC0000002,xstore=on",
|
||||||
|
- "xlevel2", 0xC0000002);
|
||||||
|
+ "486", "xlevel2=0xC0000002,xstore=on",
|
||||||
|
+ NULL, "xlevel2", 0xC0000002);
|
||||||
|
|
||||||
|
/* Check compatibility of old machine-types that didn't
|
||||||
|
* auto-increase level/xlevel/xlevel2: */
|
||||||
|
if (qtest_has_machine("pc-i440fx-2.7")) {
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level/pc-2.7",
|
||||||
|
- "-machine pc-i440fx-2.7 -cpu 486,arat=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
- "level", 1);
|
||||||
|
+ "486", "arat=on,avx512vbmi=on,xsaveopt=on",
|
||||||
|
+ "pc-i440fx-2.7", "level", 1);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel/pc-2.7",
|
||||||
|
- "-machine pc-i440fx-2.7 -cpu 486,3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
- "xlevel", 0);
|
||||||
|
+ "486", "3dnow=on,sse4a=on,invtsc=on,npt=on,svm=on",
|
||||||
|
+ "pc-i440fx-2.7", "xlevel", 0);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-xlevel2/pc-2.7",
|
||||||
|
- "-machine pc-i440fx-2.7 -cpu 486,xstore=on",
|
||||||
|
+ "486", "xstore=on", "pc-i440fx-2.7",
|
||||||
|
"xlevel2", 0);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
@@ -319,18 +364,18 @@ int main(int argc, char **argv)
|
||||||
|
*/
|
||||||
|
if (qtest_has_machine("pc-i440fx-2.3")) {
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.3/off",
|
||||||
|
- "-machine pc-i440fx-2.3 -cpu Penryn",
|
||||||
|
+ "Penryn", NULL, "pc-i440fx-2.3",
|
||||||
|
"level", 4);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.3/on",
|
||||||
|
- "-machine pc-i440fx-2.3 -cpu Penryn,erms=on",
|
||||||
|
+ "Penryn", "erms=on", "pc-i440fx-2.3",
|
||||||
|
"level", 7);
|
||||||
|
}
|
||||||
|
if (qtest_has_machine("pc-i440fx-2.9")) {
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/off",
|
||||||
|
- "-machine pc-i440fx-2.9 -cpu Conroe",
|
||||||
|
+ "Conroe", NULL, "pc-i440fx-2.9",
|
||||||
|
"level", 10);
|
||||||
|
add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/on",
|
||||||
|
- "-machine pc-i440fx-2.9 -cpu Conroe,erms=on",
|
||||||
|
+ "Conroe", "erms=on", "pc-i440fx-2.9",
|
||||||
|
"level", 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -341,42 +386,43 @@ int main(int argc, char **argv)
|
||||||
|
*/
|
||||||
|
if (qtest_has_machine("pc-i440fx-2.3")) {
|
||||||
|
add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.3",
|
||||||
|
- "-machine pc-i440fx-2.3 -cpu SandyBridge",
|
||||||
|
+ "SandyBridge", NULL, "pc-i440fx-2.3",
|
||||||
|
"xlevel", 0x8000000a);
|
||||||
|
}
|
||||||
|
if (qtest_has_machine("pc-i440fx-2.4")) {
|
||||||
|
add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-off",
|
||||||
|
- "-machine pc-i440fx-2.4 -cpu SandyBridge,",
|
||||||
|
+ "SandyBridge", NULL, "pc-i440fx-2.4",
|
||||||
|
"xlevel", 0x80000008);
|
||||||
|
add_cpuid_test("x86/cpuid/xlevel-compat/pc-i440fx-2.4/npt-on",
|
||||||
|
- "-machine pc-i440fx-2.4 -cpu SandyBridge,svm=on,npt=on",
|
||||||
|
+ "SandyBridge", "svm=on,npt=on", "pc-i440fx-2.4",
|
||||||
|
"xlevel", 0x80000008);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Test feature parsing */
|
||||||
|
add_feature_test("x86/cpuid/features/plus",
|
||||||
|
- "-cpu 486,+arat",
|
||||||
|
+ "486", "+arat",
|
||||||
|
6, 0, "EAX", 2, true);
|
||||||
|
add_feature_test("x86/cpuid/features/minus",
|
||||||
|
- "-cpu pentium,-mmx",
|
||||||
|
+ "pentium", "-mmx",
|
||||||
|
1, 0, "EDX", 23, false);
|
||||||
|
add_feature_test("x86/cpuid/features/on",
|
||||||
|
- "-cpu 486,arat=on",
|
||||||
|
+ "486", "arat=on",
|
||||||
|
6, 0, "EAX", 2, true);
|
||||||
|
add_feature_test("x86/cpuid/features/off",
|
||||||
|
- "-cpu pentium,mmx=off",
|
||||||
|
+ "pentium", "mmx=off",
|
||||||
|
1, 0, "EDX", 23, false);
|
||||||
|
+
|
||||||
|
add_feature_test("x86/cpuid/features/max-plus-invtsc",
|
||||||
|
- "-cpu max,+invtsc",
|
||||||
|
+ "max" , "+invtsc",
|
||||||
|
0x80000007, 0, "EDX", 8, true);
|
||||||
|
add_feature_test("x86/cpuid/features/max-invtsc-on",
|
||||||
|
- "-cpu max,invtsc=on",
|
||||||
|
+ "max", "invtsc=on",
|
||||||
|
0x80000007, 0, "EDX", 8, true);
|
||||||
|
add_feature_test("x86/cpuid/features/max-minus-mmx",
|
||||||
|
- "-cpu max,-mmx",
|
||||||
|
+ "max", "-mmx",
|
||||||
|
1, 0, "EDX", 23, false);
|
||||||
|
add_feature_test("x86/cpuid/features/max-invtsc-on,mmx=off",
|
||||||
|
- "-cpu max,mmx=off",
|
||||||
|
+ "max", "mmx=off",
|
||||||
|
1, 0, "EDX", 23, false);
|
||||||
|
|
||||||
|
return g_test_run();
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
122
kvm-virtio-gpu-fix-v2-migration.patch
Normal file
122
kvm-virtio-gpu-fix-v2-migration.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
From 77e24d71549454d7d7b9e83f882e2817a5da7fac Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||||
|
Date: Thu, 16 May 2024 12:40:22 +0400
|
||||||
|
Subject: [PATCH 06/14] virtio-gpu: fix v2 migration
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
RH-MergeRequest: 250: virtio-gpu: fix v2 migration
|
||||||
|
RH-Jira: RHEL-36329
|
||||||
|
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Commit: [1/2] 55624c9074aaf1226ca3ae8a34744134cd8a4d9f (marcandre.lureau-rh/qemu-kvm-centos)
|
||||||
|
|
||||||
|
Commit dfcf74fa ("virtio-gpu: fix scanout migration post-load") broke
|
||||||
|
forward/backward version migration. Versioning of nested VMSD structures
|
||||||
|
is not straightforward, as the wire format doesn't have nested
|
||||||
|
structures versions. Introduce x-scanout-vmstate-version and a field
|
||||||
|
test to save/load appropriately according to the machine version.
|
||||||
|
|
||||||
|
Fixes: dfcf74fa ("virtio-gpu: fix scanout migration post-load")
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||||||
|
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
|
||||||
|
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
|
||||||
|
[fixed long lines]
|
||||||
|
Signed-off-by: Fabiano Rosas <farosas@suse.de>
|
||||||
|
|
||||||
|
Jira: https://issues.redhat.com/browse/RHEL-36329
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
(cherry picked from commit 40a23ef643664b5c1021a9789f9d680b6294fb50)
|
||||||
|
---
|
||||||
|
hw/core/machine.c | 1 +
|
||||||
|
hw/display/virtio-gpu.c | 30 ++++++++++++++++++++++--------
|
||||||
|
include/hw/virtio/virtio-gpu.h | 1 +
|
||||||
|
3 files changed, 24 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
||||||
|
index 0f256d9633..cf1d7faaaf 100644
|
||||||
|
--- a/hw/core/machine.c
|
||||||
|
+++ b/hw/core/machine.c
|
||||||
|
@@ -37,6 +37,7 @@ GlobalProperty hw_compat_8_2[] = {
|
||||||
|
{ "migration", "zero-page-detection", "legacy"},
|
||||||
|
{ TYPE_VIRTIO_IOMMU_PCI, "granule", "4k" },
|
||||||
|
{ TYPE_VIRTIO_IOMMU_PCI, "aw-bits", "64" },
|
||||||
|
+ { "virtio-gpu-device", "x-scanout-vmstate-version", "1" },
|
||||||
|
};
|
||||||
|
const size_t hw_compat_8_2_len = G_N_ELEMENTS(hw_compat_8_2);
|
||||||
|
|
||||||
|
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
|
||||||
|
index ae831b6b3e..d60b1b2973 100644
|
||||||
|
--- a/hw/display/virtio-gpu.c
|
||||||
|
+++ b/hw/display/virtio-gpu.c
|
||||||
|
@@ -1166,10 +1166,17 @@ static void virtio_gpu_cursor_bh(void *opaque)
|
||||||
|
virtio_gpu_handle_cursor(&g->parent_obj.parent_obj, g->cursor_vq);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static bool scanout_vmstate_after_v2(void *opaque, int version)
|
||||||
|
+{
|
||||||
|
+ struct VirtIOGPUBase *base = container_of(opaque, VirtIOGPUBase, scanout);
|
||||||
|
+ struct VirtIOGPU *gpu = container_of(base, VirtIOGPU, parent_obj);
|
||||||
|
+
|
||||||
|
+ return gpu->scanout_vmstate_version >= 2;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static const VMStateDescription vmstate_virtio_gpu_scanout = {
|
||||||
|
.name = "virtio-gpu-one-scanout",
|
||||||
|
- .version_id = 2,
|
||||||
|
- .minimum_version_id = 1,
|
||||||
|
+ .version_id = 1,
|
||||||
|
.fields = (const VMStateField[]) {
|
||||||
|
VMSTATE_UINT32(resource_id, struct virtio_gpu_scanout),
|
||||||
|
VMSTATE_UINT32(width, struct virtio_gpu_scanout),
|
||||||
|
@@ -1181,12 +1188,18 @@ static const VMStateDescription vmstate_virtio_gpu_scanout = {
|
||||||
|
VMSTATE_UINT32(cursor.hot_y, struct virtio_gpu_scanout),
|
||||||
|
VMSTATE_UINT32(cursor.pos.x, struct virtio_gpu_scanout),
|
||||||
|
VMSTATE_UINT32(cursor.pos.y, struct virtio_gpu_scanout),
|
||||||
|
- VMSTATE_UINT32_V(fb.format, struct virtio_gpu_scanout, 2),
|
||||||
|
- VMSTATE_UINT32_V(fb.bytes_pp, struct virtio_gpu_scanout, 2),
|
||||||
|
- VMSTATE_UINT32_V(fb.width, struct virtio_gpu_scanout, 2),
|
||||||
|
- VMSTATE_UINT32_V(fb.height, struct virtio_gpu_scanout, 2),
|
||||||
|
- VMSTATE_UINT32_V(fb.stride, struct virtio_gpu_scanout, 2),
|
||||||
|
- VMSTATE_UINT32_V(fb.offset, struct virtio_gpu_scanout, 2),
|
||||||
|
+ VMSTATE_UINT32_TEST(fb.format, struct virtio_gpu_scanout,
|
||||||
|
+ scanout_vmstate_after_v2),
|
||||||
|
+ VMSTATE_UINT32_TEST(fb.bytes_pp, struct virtio_gpu_scanout,
|
||||||
|
+ scanout_vmstate_after_v2),
|
||||||
|
+ VMSTATE_UINT32_TEST(fb.width, struct virtio_gpu_scanout,
|
||||||
|
+ scanout_vmstate_after_v2),
|
||||||
|
+ VMSTATE_UINT32_TEST(fb.height, struct virtio_gpu_scanout,
|
||||||
|
+ scanout_vmstate_after_v2),
|
||||||
|
+ VMSTATE_UINT32_TEST(fb.stride, struct virtio_gpu_scanout,
|
||||||
|
+ scanout_vmstate_after_v2),
|
||||||
|
+ VMSTATE_UINT32_TEST(fb.offset, struct virtio_gpu_scanout,
|
||||||
|
+ scanout_vmstate_after_v2),
|
||||||
|
VMSTATE_END_OF_LIST()
|
||||||
|
},
|
||||||
|
};
|
||||||
|
@@ -1659,6 +1672,7 @@ static Property virtio_gpu_properties[] = {
|
||||||
|
DEFINE_PROP_BIT("blob", VirtIOGPU, parent_obj.conf.flags,
|
||||||
|
VIRTIO_GPU_FLAG_BLOB_ENABLED, false),
|
||||||
|
DEFINE_PROP_SIZE("hostmem", VirtIOGPU, parent_obj.conf.hostmem, 0),
|
||||||
|
+ DEFINE_PROP_UINT8("x-scanout-vmstate-version", VirtIOGPU, scanout_vmstate_version, 2),
|
||||||
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
|
||||||
|
index ed44cdad6b..842315d51d 100644
|
||||||
|
--- a/include/hw/virtio/virtio-gpu.h
|
||||||
|
+++ b/include/hw/virtio/virtio-gpu.h
|
||||||
|
@@ -177,6 +177,7 @@ typedef struct VGPUDMABuf {
|
||||||
|
struct VirtIOGPU {
|
||||||
|
VirtIOGPUBase parent_obj;
|
||||||
|
|
||||||
|
+ uint8_t scanout_vmstate_version;
|
||||||
|
uint64_t conf_max_hostmem;
|
||||||
|
|
||||||
|
VirtQueue *ctrl_vq;
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -0,0 +1,98 @@
|
|||||||
|
From 8c735b34df1902f32eb68bb3e6c3e8f04b010bd4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ani Sinha <anisinha@redhat.com>
|
||||||
|
Date: Mon, 10 Jun 2024 15:34:22 +0530
|
||||||
|
Subject: [PATCH 05/14] x86/cpu: deprecate cpu models that do not support
|
||||||
|
x86-64-v3
|
||||||
|
|
||||||
|
RH-Author: Ani Sinha <anisinha@redhat.com>
|
||||||
|
RH-MergeRequest: 247: x86/cpu: deprecate cpu models that do not support x86-64-v3
|
||||||
|
RH-Jira: RHEL-28971
|
||||||
|
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
RH-Acked-by: MST <mst@redhat.com>
|
||||||
|
RH-Commit: [1/1] 1afb03048c674b54da8cd4ad5174f767a7514b51 (anisinha/centos-qemu-kvm)
|
||||||
|
|
||||||
|
RHEL-10 has switched to a new baseline microarchitecture called "x86-64-v3".
|
||||||
|
Deprecate the CPU models that do not support x86-64-v3. The following are the
|
||||||
|
CPU models that do not support v3:
|
||||||
|
|
||||||
|
Intel: Denverton, IvyBridge, Nehalem, SandyBridge, Snowridge, Westmere.
|
||||||
|
AMD: Opteron_G4 and Opteron_G5.
|
||||||
|
|
||||||
|
See also https://www.qemu.org/docs/master/system/i386/cpu.html#abi-compatibility-levels-for-cpu-models
|
||||||
|
|
||||||
|
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index c83d585c9b..3eac3135a6 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -2597,6 +2597,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
#endif // Removal of deprecated CPU models in RHEL-10
|
||||||
|
{
|
||||||
|
.name = "Nehalem",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 11,
|
||||||
|
.vendor = CPUID_VENDOR_INTEL,
|
||||||
|
.family = 6,
|
||||||
|
@@ -2674,6 +2675,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Westmere",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 11,
|
||||||
|
.vendor = CPUID_VENDOR_INTEL,
|
||||||
|
.family = 6,
|
||||||
|
@@ -2755,6 +2757,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "SandyBridge",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 0xd,
|
||||||
|
.vendor = CPUID_VENDOR_INTEL,
|
||||||
|
.family = 6,
|
||||||
|
@@ -2841,6 +2844,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "IvyBridge",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 0xd,
|
||||||
|
.vendor = CPUID_VENDOR_INTEL,
|
||||||
|
.family = 6,
|
||||||
|
@@ -4121,6 +4125,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Denverton",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 21,
|
||||||
|
.vendor = CPUID_VENDOR_INTEL,
|
||||||
|
.family = 6,
|
||||||
|
@@ -4231,6 +4236,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Snowridge",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 27,
|
||||||
|
.vendor = CPUID_VENDOR_INTEL,
|
||||||
|
.family = 6,
|
||||||
|
@@ -4486,6 +4492,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
.name = "Opteron_G4",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 0xd,
|
||||||
|
.vendor = CPUID_VENDOR_AMD,
|
||||||
|
.family = 21,
|
||||||
|
@@ -4518,6 +4525,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "Opteron_G5",
|
||||||
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
||||||
|
.level = 0xd,
|
||||||
|
.vendor = CPUID_VENDOR_AMD,
|
||||||
|
.family = 21,
|
||||||
|
--
|
||||||
|
2.39.3
|
||||||
|
|
@ -143,7 +143,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch}:%{version} \
|
|||||||
Summary: QEMU is a machine emulator and virtualizer
|
Summary: QEMU is a machine emulator and virtualizer
|
||||||
Name: qemu-kvm
|
Name: qemu-kvm
|
||||||
Version: 9.0.0
|
Version: 9.0.0
|
||||||
Release: 2%{?rcrel}%{?dist}%{?cc_suffix}.1
|
Release: 3%{?rcrel}%{?dist}%{?cc_suffix}
|
||||||
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
||||||
# Epoch 15 used for RHEL 8
|
# Epoch 15 used for RHEL 8
|
||||||
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
|
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
|
||||||
@ -184,6 +184,36 @@ Patch0016: 0016-Disable-FDC-devices.patch
|
|||||||
Patch0017: 0017-Disable-vga-cirrus-device.patch
|
Patch0017: 0017-Disable-vga-cirrus-device.patch
|
||||||
# For RHEL-37563 - Enable 'vhost-user-snd-pci' in qemu-kvm for RHIVOS
|
# For RHEL-37563 - Enable 'vhost-user-snd-pci' in qemu-kvm for RHIVOS
|
||||||
Patch18: kvm-Enable-vhost-user-snd-pci-device.patch
|
Patch18: kvm-Enable-vhost-user-snd-pci-device.patch
|
||||||
|
# For RHEL-28972 - x86: Remove the existing deprecated CPU models on RHEL10
|
||||||
|
Patch19: kvm-qtest-x86-numa-test-do-not-use-the-obsolete-pentium-.patch
|
||||||
|
# For RHEL-28972 - x86: Remove the existing deprecated CPU models on RHEL10
|
||||||
|
Patch20: kvm-tests-qtest-libqtest-add-qtest_has_cpu_model-api.patch
|
||||||
|
# For RHEL-28972 - x86: Remove the existing deprecated CPU models on RHEL10
|
||||||
|
Patch21: kvm-tests-qtest-x86-check-for-availability-of-older-cpu-.patch
|
||||||
|
# For RHEL-28972 - x86: Remove the existing deprecated CPU models on RHEL10
|
||||||
|
Patch22: kvm-target-cpu-models-x86-Remove-the-existing-deprecated.patch
|
||||||
|
# For RHEL-28971 - Consider deprecating CPU models like "Nehalem" / "IvyBridge" on RHEL 10
|
||||||
|
Patch23: kvm-x86-cpu-deprecate-cpu-models-that-do-not-support-x86.patch
|
||||||
|
# For RHEL-36329 - [RHEL10.0.beta][stable_guest_abi]Failed to migrate VM with (qemu) qemu-kvm: Missing section footer for 0000:00:01.0/virtio-gpu qemu-kvm: load of migration failed: Invalid argument
|
||||||
|
Patch24: kvm-virtio-gpu-fix-v2-migration.patch
|
||||||
|
# For RHEL-36329 - [RHEL10.0.beta][stable_guest_abi]Failed to migrate VM with (qemu) qemu-kvm: Missing section footer for 0000:00:01.0/virtio-gpu qemu-kvm: load of migration failed: Invalid argument
|
||||||
|
Patch25: kvm-rhel-9.4.0-machine-type-compat-for-virtio-gpu-migrat.patch
|
||||||
|
# For RHEL-39898 - s390: Remove the legacy CPU models on RHEL10
|
||||||
|
Patch26: kvm-s390x-remove-deprecated-rhel-machine-types.patch
|
||||||
|
# For RHEL-39898 - s390: Remove the legacy CPU models on RHEL10
|
||||||
|
Patch27: kvm-s390x-select-correct-components-for-no-board-build.patch
|
||||||
|
# For RHEL-39898 - s390: Remove the legacy CPU models on RHEL10
|
||||||
|
Patch28: kvm-target-s390x-Add-a-CONFIG-switch-to-disable-legacy-C.patch
|
||||||
|
# For RHEL-39898 - s390: Remove the legacy CPU models on RHEL10
|
||||||
|
Patch29: kvm-target-s390x-cpu_models-Disable-everything-up-to-the.patch
|
||||||
|
# For RHEL-39898 - s390: Remove the legacy CPU models on RHEL10
|
||||||
|
Patch30: kvm-target-s390x-Revert-the-old-s390x-CPU-model-disablem.patch
|
||||||
|
# For RHEL-43409 - aio=io_uring: Assertion failure `luringcb->co->ctx == s->aio_context' with block_resize
|
||||||
|
# For RHEL-43410 - aio=native: Assertion failure `laiocb->co->ctx == laiocb->ctx->aio_context' with block_resize
|
||||||
|
Patch31: kvm-Revert-monitor-use-aio_co_reschedule_self.patch
|
||||||
|
# For RHEL-43409 - aio=io_uring: Assertion failure `luringcb->co->ctx == s->aio_context' with block_resize
|
||||||
|
# For RHEL-43410 - aio=native: Assertion failure `laiocb->co->ctx == laiocb->ctx->aio_context' with block_resize
|
||||||
|
Patch32: kvm-aio-warn-about-iohandler_ctx-special-casing.patch
|
||||||
|
|
||||||
%if %{have_clang}
|
%if %{have_clang}
|
||||||
BuildRequires: clang
|
BuildRequires: clang
|
||||||
@ -1249,6 +1279,34 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 01 2024 Miroslav Rezanina <mrezanin@redhat.com> - 9.0.0-3
|
||||||
|
- kvm-qtest-x86-numa-test-do-not-use-the-obsolete-pentium-.patch [RHEL-28972]
|
||||||
|
- kvm-tests-qtest-libqtest-add-qtest_has_cpu_model-api.patch [RHEL-28972]
|
||||||
|
- kvm-tests-qtest-x86-check-for-availability-of-older-cpu-.patch [RHEL-28972]
|
||||||
|
- kvm-target-cpu-models-x86-Remove-the-existing-deprecated.patch [RHEL-28972]
|
||||||
|
- kvm-x86-cpu-deprecate-cpu-models-that-do-not-support-x86.patch [RHEL-28971]
|
||||||
|
- kvm-virtio-gpu-fix-v2-migration.patch [RHEL-36329]
|
||||||
|
- kvm-rhel-9.4.0-machine-type-compat-for-virtio-gpu-migrat.patch [RHEL-36329]
|
||||||
|
- kvm-s390x-remove-deprecated-rhel-machine-types.patch [RHEL-39898]
|
||||||
|
- kvm-s390x-select-correct-components-for-no-board-build.patch [RHEL-39898]
|
||||||
|
- kvm-target-s390x-Add-a-CONFIG-switch-to-disable-legacy-C.patch [RHEL-39898]
|
||||||
|
- kvm-target-s390x-cpu_models-Disable-everything-up-to-the.patch [RHEL-39898]
|
||||||
|
- kvm-target-s390x-Revert-the-old-s390x-CPU-model-disablem.patch [RHEL-39898]
|
||||||
|
- kvm-Revert-monitor-use-aio_co_reschedule_self.patch [RHEL-43409 RHEL-43410]
|
||||||
|
- kvm-aio-warn-about-iohandler_ctx-special-casing.patch [RHEL-43409 RHEL-43410]
|
||||||
|
- Resolves: RHEL-28972
|
||||||
|
(x86: Remove the existing deprecated CPU models on RHEL10)
|
||||||
|
- Resolves: RHEL-28971
|
||||||
|
(Consider deprecating CPU models like "Nehalem" / "IvyBridge" on RHEL 10)
|
||||||
|
- Resolves: RHEL-36329
|
||||||
|
([RHEL10.0.beta][stable_guest_abi]Failed to migrate VM with (qemu) qemu-kvm: Missing section footer for 0000:00:01.0/virtio-gpu qemu-kvm: load of migration failed: Invalid argument)
|
||||||
|
- Resolves: RHEL-39898
|
||||||
|
(s390: Remove the legacy CPU models on RHEL10)
|
||||||
|
- Resolves: RHEL-43409
|
||||||
|
(aio=io_uring: Assertion failure `luringcb->co->ctx == s->aio_context' with block_resize)
|
||||||
|
- Resolves: RHEL-43410
|
||||||
|
(aio=native: Assertion failure `laiocb->co->ctx == laiocb->ctx->aio_context' with block_resize)
|
||||||
|
|
||||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 18:9.0.0-2.1
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 18:9.0.0-2.1
|
||||||
- Bump release for June 2024 mass rebuild
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user