aboutsummaryrefslogtreecommitdiff
path: root/rust/qemu-api
diff options
context:
space:
mode:
authorFabiano Rosas <farosas@suse.de>2024-12-13 13:01:19 -0300
committerFabiano Rosas <farosas@suse.de>2025-01-09 17:38:35 -0300
commitb93d897ea2f0abbe7fc341a9ac176b5ecd0f3c93 (patch)
tree6cd2f881ac9bc165b29d93bbfec23d847a2beca3 /rust/qemu-api
parentbaab4473dba2b85adf3c0622b92bc209f7a8dec0 (diff)
downloadqemu-b93d897ea2f0abbe7fc341a9ac176b5ecd0f3c93.zip
qemu-b93d897ea2f0abbe7fc341a9ac176b5ecd0f3c93.tar.gz
qemu-b93d897ea2f0abbe7fc341a9ac176b5ecd0f3c93.tar.bz2
migration/multifd: Fix compat with QEMU < 9.0
Commit f5f48a7891 ("migration/multifd: Separate SYNC request with normal jobs") changed the multifd source side to stop sending data along with the MULTIFD_FLAG_SYNC, effectively introducing the concept of a SYNC-only packet. Relying on that, commit d7e58f412c ("migration/multifd: Don't send ram data during SYNC") later came along and skipped reading data from SYNC packets. In a versions timeline like this: 8.2 f5f48a7 9.0 9.1 d7e58f41 9.2 The issue arises that QEMUs < 9.0 still send data along with SYNC, but QEMUs > 9.1 don't gather that data anymore. This leads to various kinds of migration failures due to desync/missing data. Stop checking for a SYNC packet on the destination and unconditionally unfill the packet. >From now on: old -> new: the source sends data + sync, destination reads normally new -> new: source sends only sync, destination reads zeros new -> old: source sends only sync, destination reads zeros CC: qemu-stable@nongnu.org Fixes: d7e58f412c ("migration/multifd: Don't send ram data during SYNC") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2720 Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Message-Id: <20241213160120.23880-2-farosas@suse.de> Signed-off-by: Fabiano Rosas <farosas@suse.de>
Diffstat (limited to 'rust/qemu-api')
0 files changed, 0 insertions, 0 deletions