7fbe0e6b6e
- 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)
68 lines
2.8 KiB
Diff
68 lines
2.8 KiB
Diff
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
|
|
|