From: Peter Xu <peterx@redhat.com>
To: Lukas Straub <lukasstraub2@web.de>
Cc: qemu-devel@nongnu.org, Fabiano Rosas <farosas@suse.de>,
Laurent Vivier <lvivier@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Zhang Chen <zhangckid@gmail.com>,
Juan Quintela <quintela@trasno.org>
Subject: Re: [PATCH 0/3] migration: Add COLO multifd support and COLO migration unit test
Date: Tue, 6 Jan 2026 15:05:26 -0500 [thread overview]
Message-ID: <aV1rBn2fLWWVLLZC@x1.local> (raw)
In-Reply-To: <20251230-colo_unit_test_multifd-v1-0-f9734bc74c71@web.de>
On Tue, Dec 30, 2025 at 03:05:43PM +0100, Lukas Straub wrote:
> Hello everyone,
> This adds COLO multifd support and migration unit tests for COLO migration
> and failover.
>
> Regards,
> Lukas
>
> Signed-off-by: Lukas Straub <lukasstraub2@web.de>
> ---
> Lukas Straub (3):
> multifd: Add colo support
> migration-test: Add -snapshot option for COLO
> migration-test: Add COLO migration unit test
>
> migration/meson.build | 2 +-
> migration/multifd-colo.c | 57 ++++++++++++++++++
> migration/multifd-colo.h | 26 +++++++++
> migration/multifd.c | 14 ++++-
> tests/qtest/meson.build | 7 ++-
> tests/qtest/migration-test.c | 1 +
> tests/qtest/migration/colo-tests.c | 115 +++++++++++++++++++++++++++++++++++++
> tests/qtest/migration/framework.c | 69 +++++++++++++++++++++-
> tests/qtest/migration/framework.h | 10 ++++
> 9 files changed, 294 insertions(+), 7 deletions(-)
> ---
> base-commit: 942b0d378a1de9649085ad6db5306d5b8cef3591
> change-id: 20251230-colo_unit_test_multifd-8bf58dcebd46
>
> Best regards,
> --
> Lukas Straub <lukasstraub2@web.de>
>
Lukas,
I gave it a shot on the tests locally. I saw a lot of errors even if qtest
didn't think it's failing. I do not know if it's only me. Let's discuss
deprecation first, then if we want to keep COLO, then please have a look.
Log attached.
===8<===
$ QTEST_QEMU_BINARY=./qemu-system-x86_64 ./tests/qtest/migration-test --full -r /x86_64/migration/colo
TAP version 14
# random seed: R02Sa4f442d17819fa84c9ab14620fa9dd5e
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -machine none -accel qtest
# Start of x86_64 tests
# Start of migration tests
# Start of colo tests
# Start of plain tests
# Running /x86_64/migration/colo/plain/secondary_failover
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming tcp:127.0.0.1:0 -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: Unable to write to socket: Broken pipe
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Can't send COLO message: Input/output error
ok 1 /x86_64/migration/colo/plain/secondary_failover
# slow test /x86_64/migration/colo/plain/secondary_failover executed in 2.96 secs
# Running /x86_64/migration/colo/plain/primary_failover
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming tcp:127.0.0.1:0 -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
ok 2 /x86_64/migration/colo/plain/primary_failover
# slow test /x86_64/migration/colo/plain/primary_failover executed in 2.54 secs
# Running /x86_64/migration/colo/plain/primary_failover_checkpoint
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming tcp:127.0.0.1:0 -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Failed to load section ID: stream error: -5: Channel error: Input/output error
ok 3 /x86_64/migration/colo/plain/primary_failover_checkpoint
# slow test /x86_64/migration/colo/plain/primary_failover_checkpoint executed in 2.87 secs
# Running /x86_64/migration/colo/plain/secondary_failover_checkpoint
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming tcp:127.0.0.1:0 -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Failed to load section ID: stream error: -5: Unable to read from socket: Connection reset by peer
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Can't send COLO message: Input/output error
qemu-system-x86_64: Can't send COLO message: Input/output error
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
ok 4 /x86_64/migration/colo/plain/secondary_failover_checkpoint
# slow test /x86_64/migration/colo/plain/secondary_failover_checkpoint executed in 3.30 secs
# End of plain tests
# Start of multifd tests
# Running /x86_64/migration/colo/multifd/secondary_failover
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming defer -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: Can't send COLO message: Input/output error
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
ok 5 /x86_64/migration/colo/multifd/secondary_failover
# slow test /x86_64/migration/colo/multifd/secondary_failover executed in 2.70 secs
# Running /x86_64/migration/colo/multifd/primary_failover
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming defer -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: Can't receive COLO message: Input/output error
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
ok 6 /x86_64/migration/colo/multifd/primary_failover
# slow test /x86_64/migration/colo/multifd/primary_failover executed in 2.00 secs
# Running /x86_64/migration/colo/multifd/primary_failover_checkpoint
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming defer -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Failed to load section ID: stream error: -5: Channel error: Input/output error
ok 7 /x86_64/migration/colo/multifd/primary_failover_checkpoint
# slow test /x86_64/migration/colo/multifd/primary_failover_checkpoint executed in 2.26 secs
# Running /x86_64/migration/colo/multifd/secondary_failover_checkpoint
# Using machine type: pc-i440fx-10.2
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name source,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/src_serial -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
# starting QEMU: exec ./qemu-system-x86_64 -qtest unix:/tmp/qtest-2106378.sock -qtest-log /dev/null -chardev socket,path=/tmp/qtest-2106378.qmp,id=char0 -mon chardev=char0,mode=control -display none -audio none -run-with exit-with-parent=on -accel kvm -accel tcg -machine pc-i440fx-10.2, -name target,debug-threads=on -machine memory-backend=mig.mem -object memory-backend-ram,id=mig.mem,size=150M,share=off -serial file:/tmp/migration-test-WWZRI3/dest_serial -incoming defer -drive if=none,id=d0,file=/tmp/migration-test-WWZRI3/bootsect,format=raw -device ide-hd,drive=d0,secs=1,cyls=1,heads=1 -snapshot -accel qtest
qemu-system-x86_64: Failed to load section ID: stream error: -5: Unable to read from socket: Connection reset by peer
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Can't send COLO message: Input/output error
qemu-system-x86_64: Can't send COLO message: Input/output error
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
qemu-system-x86_64: Unable to shutdown socket: Transport endpoint is not connected
ok 8 /x86_64/migration/colo/multifd/secondary_failover_checkpoint
# slow test /x86_64/migration/colo/multifd/secondary_failover_checkpoint executed in 3.07 secs
# End of multifd tests
# End of colo tests
# End of migration tests
# End of x86_64 tests
1..8
--
Peter Xu
prev parent reply other threads:[~2026-01-06 20:05 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-30 14:05 [PATCH 0/3] migration: Add COLO multifd support and COLO migration unit test Lukas Straub
2025-12-30 14:05 ` [PATCH 1/3] multifd: Add colo support Lukas Straub
2026-01-06 19:54 ` Peter Xu
2026-01-15 22:43 ` Lukas Straub
2025-12-30 14:05 ` [PATCH 2/3] migration-test: Add -snapshot option for COLO Lukas Straub
2026-01-06 19:55 ` Peter Xu
2026-01-15 22:37 ` Lukas Straub
2025-12-30 14:05 ` [PATCH 3/3] migration-test: Add COLO migration unit test Lukas Straub
2026-01-06 20:03 ` Peter Xu
2026-01-15 22:35 ` Lukas Straub
2026-01-15 22:42 ` Peter Xu
2025-12-30 15:02 ` [PATCH 0/3] migration: Add COLO multifd support and " Peter Xu
2026-01-04 5:44 ` Zhang Chen
2026-01-04 5:48 ` Zhang Chen
2026-01-06 19:48 ` Peter Xu
2026-01-15 21:45 ` Lukas Straub
2026-01-06 20:05 ` Peter Xu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aV1rBn2fLWWVLLZC@x1.local \
--to=peterx@redhat.com \
--cc=farosas@suse.de \
--cc=lukasstraub2@web.de \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@trasno.org \
--cc=zhangckid@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.