mbox series

[v1,0/4] migration/debug: Add migration ram consistency check

Message ID 1603720725-81206-1-git-send-email-zhengchuan@huawei.com (mailing list archive)
Headers show
Series migration/debug: Add migration ram consistency check | expand

Message

Zheng Chuan Oct. 26, 2020, 1:58 p.m. UTC
Sometimes we want to debug whether the ramblock we migrate is same between Src and Dst.
For example, we could want to check ram when develop something related to dirty log sync.
Consistency check is implemented in this series, it will sha256sum all migratable
ramblock and print both in Src and Dst.

Check results are shown as follow:
Src:
CheckPoint: migrate_fd_cleanup, Ramblock: mach-virt.ram, CheckValue: 4422e2e8f26835f32ee3a9f13e1df2772d48f973a58381f6a549ebbcfe485b72
CheckPoint: migrate_fd_cleanup, Ramblock: virt.flash0, CheckValue: d5584b740ffcf81df8123ebc833793a71a03d47c1bb5a97170d05d18665c8b2e
CheckPoint: migrate_fd_cleanup, Ramblock: virt.flash1, CheckValue: 1d6c818dfa81a88ca5b7b1da231a9ba57f4f87677c6ba8e76196195b5aa05f0c
CheckPoint: migrate_fd_cleanup, Ramblock: /rom@etc/acpi/tables, CheckValue: db4c25623cb0192a70b56b5700e304e87c46f3016bc4b43b458a831b93d1cd54
CheckPoint: migrate_fd_cleanup, Ramblock: /rom@etc/table-loader, CheckValue: b3e0b1026cd4df920884f7d090b90cfb64b4a3ab407feeb632300aabd9fb28fe
CheckPoint: migrate_fd_cleanup, Ramblock: /rom@etc/acpi/rsdp, CheckValue: 7af8a2bc8c5f78db788a47ed60b30bffee50f28783529ee55224f9e3613cc28a

Dst:
CheckPoint: qemu_loadvm_state, Ramblock: mach-virt.ram, CheckValue: 4422e2e8f26835f32ee3a9f13e1df2772d48f973a58381f6a549ebbcfe485b72
CheckPoint: qemu_loadvm_state, Ramblock: virt.flash0, CheckValue: d5584b740ffcf81df8123ebc833793a71a03d47c1bb5a97170d05d18665c8b2e
CheckPoint: qemu_loadvm_state, Ramblock: virt.flash1, CheckValue: 1d6c818dfa81a88ca5b7b1da231a9ba57f4f87677c6ba8e76196195b5aa05f0c
CheckPoint: qemu_loadvm_state, Ramblock: /rom@etc/acpi/tables, CheckValue: db4c25623cb0192a70b56b5700e304e87c46f3016bc4b43b458a831b93d1cd54
CheckPoint: qemu_loadvm_state, Ramblock: /rom@etc/table-loader, CheckValue: b3e0b1026cd4df920884f7d090b90cfb64b4a3ab407feeb632300aabd9fb28fe
CheckPoint: qemu_loadvm_state, Ramblock: /rom@etc/acpi/rsdp, CheckValue: 7af8a2bc8c5f78db788a47ed60b30bffee50f28783529ee55224f9e3613cc28a

Not for sure if it is valuable, any discussion and comment is welcome.

Chuan Zheng (4):
  migration/debug: Introduce foreach_migratable_block()
  migration/debug: Implement migration memory consistency check
  migration/debug: add checkpoint for migration consistency check
  migration/debug: add DEBUG_MIGRATION_CONSISTENCY_CHECK macros

 migration/migration.c |  3 ++
 migration/ram.c       | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++
 migration/ram.h       |  7 +++++
 migration/savevm.c    |  9 ++++++
 4 files changed, 105 insertions(+)