From: Peter Xu Date: Wed, 22 Oct 2025 19:26:01 +0000 (-0400) Subject: migration: Properly wait on G_IO_IN when peeking messages X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=604bb1badcade5f49264cf8901c2f3a528df305a;p=thirdparty%2Fqemu.git migration: Properly wait on G_IO_IN when peeking messages migration_channel_read_peek() used to do explicit waits of a short period when peeking message needs retry. Replace it with explicit polls on the io channel, exactly like what qemu_fill_buffer() does. Reviewed-by: Daniel P. Berrangé Reviewed-by: Vladimir Sementsov-Ogievskiy Link: https://lore.kernel.org/r/20251022192612.2737648-3-peterx@redhat.com Signed-off-by: Peter Xu --- diff --git a/migration/channel.c b/migration/channel.c index a547b1fbfe..462cc183e1 100644 --- a/migration/channel.c +++ b/migration/channel.c @@ -135,12 +135,7 @@ int migration_channel_read_peek(QIOChannel *ioc, break; } - /* 1ms sleep. */ - if (qemu_in_coroutine()) { - qemu_co_sleep_ns(QEMU_CLOCK_REALTIME, 1000000); - } else { - g_usleep(1000); - } + qio_channel_wait_cond(ioc, G_IO_IN); } return 0;