qemu/migration
Yuan Liu 49da21ed5a multifd: bugfix for incorrect migration data with QPL compression
When QPL compression is enabled on the migration channel and the same
dirty page changes from a normal page to a zero page in the iterative
memory copy, the dirty page will not be updated to a zero page again
on the target side, resulting in incorrect memory data on the source
and target sides.

The root cause is that the target side does not record the normal pages
to the receivedmap.

The solution is to add ramblock_recv_bitmap_set_offset in target side
to record the normal pages.

Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
Reviewed-by: Jason Zeng <jason.zeng@intel.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20241218091413.140396-3-yuan1.liu@intel.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
(cherry picked from commit 2588a5f99b)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-01-18 13:43:32 +03:00
..
block-dirty-bitmap.c migration: Add Error** argument to add_bitmaps_to_list() 2024-04-23 18:36:01 -04:00
channel-block.c io: follow coroutine AioContext in qio_channel_yield() 2023-09-07 20:32:11 -05:00
channel-block.h migration: introduce a QIOChannel impl for BlockDriverState VMState 2022-06-22 19:33:43 +01:00
channel.c migration: Fix migration_channel_read_peek() error path 2024-01-04 09:52:42 +08:00
channel.h migration: check magic value for deciding the mapping of channels 2023-02-06 19:22:57 +01:00
colo-failover.c migration/colo: Improve an x-colo-lost-heartbeat error message 2023-02-23 14:10:17 +01:00
colo-stubs.c migration/colo: make colo_incoming_co() return void 2024-05-22 17:34:31 -03:00
colo.c migration: Rename thread debug names 2024-06-21 09:47:59 -03:00
dirtyrate.c migration: remove unnecessary zlib dependency 2024-05-25 13:28:02 +02:00
dirtyrate.h migration/calc-dirty-rate: millisecond-granularity period 2023-10-10 08:03:50 +08:00
exec.c migration: simplify exec migration functions 2024-03-04 07:12:40 +01:00
exec.h migration: convert exec backend to accept MigrateAddress. 2023-11-02 11:35:04 +01:00
fd.c migration: Allow pipes to keep working for fd migrations 2024-11-26 19:33:43 +03:00
fd.h migration: Revert mapped-ram multifd support to fd: URI 2024-03-22 12:12:08 -04:00
file.c migration: Fix cleanup of iochannel in file migration 2024-08-02 09:47:40 -03:00
file.h migration/multifd: Add direct-io support 2024-06-21 09:47:22 -03:00
global_state.c migration 1st pull for 9.0 2024-01-05 13:35:25 +00:00
meson.build migration/multifd: add uadk compression framework 2024-06-14 14:01:29 -03:00
migration-hmp-cmds.c migration: Add direct-io parameter 2024-06-21 09:47:22 -03:00
migration-stats.c migration: migration_rate_limit_reset() don't need the QEMUFile 2023-10-31 08:44:33 +01:00
migration-stats.h migration: Remove transferred atomic counter 2023-10-31 08:44:33 +01:00
migration.c migration/multifd: Fix rb->receivedmap cleanup race 2024-09-25 21:05:48 +03:00
migration.h migration: Use MigrationStatus instead of int 2024-06-21 09:47:59 -03:00
multifd-qpl.c multifd: bugfix for incorrect migration data with QPL compression 2025-01-18 13:43:32 +03:00
multifd-uadk.c migration/multifd: Fix p->iov leak in multifd-uadk.c 2024-09-25 21:05:48 +03:00
multifd-zero-page.c migration/multifd: solve zero page causing multiple page faults 2024-04-23 18:36:01 -04:00
multifd-zlib.c migration/multifd: put IOV initialization into compression method 2024-06-14 14:01:28 -03:00
multifd-zstd.c migration/multifd: put IOV initialization into compression method 2024-06-14 14:01:28 -03:00
multifd.c multifd: bugfix for migration using compression methods 2025-01-18 13:43:32 +03:00
multifd.h migration/multifd: add uadk compression framework 2024-06-14 14:01:29 -03:00
options.c migration: Add direct-io parameter 2024-06-21 09:47:22 -03:00
options.h migration: Add direct-io parameter 2024-06-21 09:47:22 -03:00
page_cache.c migration: Fix cache_init()'s "Failed to allocate" error messages 2021-02-08 11:19:51 +00:00
page_cache.h migration: Clean up signed vs. unsigned XBZRLE cache-size 2021-02-08 11:19:51 +00:00
postcopy-ram.c migration/postcopy: Add postcopy-recover-setup phase 2024-06-21 09:47:59 -03:00
postcopy-ram.h migration/postcopy: Add postcopy-recover-setup phase 2024-06-21 09:47:59 -03:00
qemu-file.c migration: remove unnecessary zlib dependency 2024-05-25 13:28:02 +02:00
qemu-file.h migration: Remove non-multifd compression 2024-05-08 09:20:59 -03:00
ram.c migration/multifd: Avoid the final FLUSH in complete() 2024-06-21 09:47:59 -03:00
ram.h migration/multifd: solve zero page causing multiple page faults 2024-04-23 18:36:01 -04:00
rdma.c migration/rdma: Fix a memory issue for migration 2024-03-11 14:41:40 -04:00
rdma.h migration: convert rdma backend to accept MigrateAddress 2023-11-02 11:35:03 +01:00
savevm.c migration/multifd: Fix rb->receivedmap cleanup race 2024-09-25 21:05:48 +03:00
savevm.h migration: Add Error** argument to qemu_savevm_state_setup() 2024-04-23 18:36:01 -04:00
socket.c migration/multifd: Drop unnecessary helper to destroy IOC 2024-02-28 11:31:28 +08:00
socket.h migration/multifd: Drop unnecessary helper to destroy IOC 2024-02-28 11:31:28 +08:00
target.c migration: Add migration prefix to functions in target.c 2023-09-11 08:34:06 +02:00
threadinfo.c migration/multifd: Protect accesses to migration_threads 2023-07-26 10:55:56 +02:00
threadinfo.h migration/multifd: Protect accesses to migration_threads 2023-07-26 10:55:56 +02:00
tls.c migration: Drop unused parameter for migration_tls_client_create() 2023-05-03 11:24:20 +02:00
tls.h migration: Drop unused parameter for migration_tls_client_create() 2023-05-03 11:24:20 +02:00
trace-events migration: add "exists" info to load-state-field trace 2024-05-22 17:34:40 -03:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vmstate-types.c migration: Rename vmstate_info_nullptr 2025-01-18 13:42:56 +03:00
vmstate.c migration: Fix arrays of pointers in JSON writer 2025-01-18 13:43:28 +03:00
xbzrle.c migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
xbzrle.h migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
yank_functions.c migration/yank: Use channel features 2024-01-29 11:02:12 +08:00
yank_functions.h migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00