a799a516c5
- kvm-block-compile-out-assert_bdrv_graph_readable-by-defa.patch [bz#2186725] - kvm-graph-lock-Disable-locking-for-now.patch [bz#2186725] - kvm-nbd-server-Fix-drained_poll-to-wake-coroutine-in-rig.patch [bz#2186725] - kvm-iotests-Test-commit-with-iothreads-and-ongoing-I-O.patch [bz#2186725] - kvm-memory-prevent-dma-reentracy-issues.patch [RHEL-516] - kvm-async-Add-an-optional-reentrancy-guard-to-the-BH-API.patch [RHEL-516] - kvm-checkpatch-add-qemu_bh_new-aio_bh_new-checks.patch [RHEL-516] - kvm-hw-replace-most-qemu_bh_new-calls-with-qemu_bh_new_g.patch [RHEL-516] - kvm-lsi53c895a-disable-reentrancy-detection-for-script-R.patch [RHEL-516] - kvm-bcm2835_property-disable-reentrancy-detection-for-io.patch [RHEL-516] - kvm-raven-disable-reentrancy-detection-for-iomem.patch [RHEL-516] - kvm-apic-disable-reentrancy-detection-for-apic-msi.patch [RHEL-516] - kvm-async-avoid-use-after-free-on-re-entrancy-guard.patch [RHEL-516] - kvm-loongarch-mark-loongarch_ipi_iocsr-re-entrnacy-safe.patch [RHEL-516] - kvm-memory-stricter-checks-prior-to-unsetting-engaged_in.patch [RHEL-516] - kvm-lsi53c895a-disable-reentrancy-detection-for-MMIO-reg.patch [RHEL-516] - kvm-hw-scsi-lsi53c895a-Fix-reentrancy-issues-in-the-LSI-.patch [RHEL-516] - kvm-hw-pci-Disable-PCI_ERR_UNCOR_MASK-register-for-machi.patch [bz#2189423] - kvm-multifd-Fix-the-number-of-channels-ready.patch [bz#2196289] - kvm-util-async-teardown-wire-up-query-command-line-optio.patch [bz#2168500] - kvm-s390x-pv-Fix-spurious-warning-with-asynchronous-tear.patch [bz#2168500] - Resolves: bz#2186725 (Qemu hang when commit during fio running(iothread enable)) - Resolves: RHEL-516 (CVE-2023-2680 qemu-kvm: QEMU: hcd-ehci: DMA reentrancy issue (incomplete fix for CVE-2021-3750) [rhel-9]) - Resolves: bz#2189423 (Failed to migrate VM from rhel 9.3 to rhel 9.2) - Resolves: bz#2196289 (Fix number of ready channels on multifd) - Resolves: bz#2168500 ([IBM 9.3 FEAT] KVM: Improve memory reclaiming for z15 Secure Execution guests - qemu part)
59 lines
2.1 KiB
Diff
59 lines
2.1 KiB
Diff
From af6f2a543c7db6d67d33fd12615a50e57fc3fe66 Mon Sep 17 00:00:00 2001
|
|
From: Juan Quintela <quintela@redhat.com>
|
|
Date: Wed, 26 Apr 2023 12:20:36 +0200
|
|
Subject: [PATCH 19/21] multifd: Fix the number of channels ready
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Leonardo Brás <leobras@redhat.com>
|
|
RH-MergeRequest: 171: multifd: Fix the number of channels ready
|
|
RH-Bugzilla: 2196289
|
|
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Commit: [1/1] a5e271ba249d85b27a68d3cff10480ca3a112c5d (LeoBras/centos-qemu-kvm)
|
|
|
|
We don't wait in the sem when we are doing a sync_main. Make it wait
|
|
there. To make things clearer, we mark the channel ready at the
|
|
begining of the thread loop.
|
|
|
|
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
|
Reviewed-by: Fabiano Rosas <farosas@suse.de>
|
|
(cherry picked from commit d2026ee117147893f8d80f060cede6d872ecbd7f)
|
|
Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
|
---
|
|
migration/multifd.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/migration/multifd.c b/migration/multifd.c
|
|
index cce3ad6988..6a59c03dd2 100644
|
|
--- a/migration/multifd.c
|
|
+++ b/migration/multifd.c
|
|
@@ -635,6 +635,7 @@ int multifd_send_sync_main(QEMUFile *f)
|
|
for (i = 0; i < migrate_multifd_channels(); i++) {
|
|
MultiFDSendParams *p = &multifd_send_state->params[i];
|
|
|
|
+ qemu_sem_wait(&multifd_send_state->channels_ready);
|
|
trace_multifd_send_sync_main_wait(p->id);
|
|
qemu_sem_wait(&p->sem_sync);
|
|
|
|
@@ -668,6 +669,7 @@ static void *multifd_send_thread(void *opaque)
|
|
p->num_packets = 1;
|
|
|
|
while (true) {
|
|
+ qemu_sem_post(&multifd_send_state->channels_ready);
|
|
qemu_sem_wait(&p->sem);
|
|
|
|
if (qatomic_read(&multifd_send_state->exiting)) {
|
|
@@ -736,7 +738,6 @@ static void *multifd_send_thread(void *opaque)
|
|
if (flags & MULTIFD_FLAG_SYNC) {
|
|
qemu_sem_post(&p->sem_sync);
|
|
}
|
|
- qemu_sem_post(&multifd_send_state->channels_ready);
|
|
} else if (p->quit) {
|
|
qemu_mutex_unlock(&p->mutex);
|
|
break;
|
|
--
|
|
2.39.3
|
|
|