This patch set adds support for a simple migration debugging method. It adds a device that exports all metadata required to read a migration stream from an external program as part of the migration stream. The external program then does not need to have any knowledge of device internals of the target virtual machine.
The patch set also adds a python script that serves as such an external program, allowing users to easily introspect the contents of a live migrated stream. This approach consciously does not modify any way QEMU operates. To QEMU, it is completely transparent. QEMU does not read that stream either, so you can not use it to recover from migration breakage within the code. For that, we should simply improve the migration protocol to be more future proof. This approach is about enabling offline introspection of migration stream data and structure, so that we have one more tool in our hands to see what goes wrong inside a virtual machine. Example decoded migration: http://csgraf.de/mig/mig.txt Presentation: https://www.youtube.com/watch?v=iq1x40Qsrew Slides: https://www.dropbox.com/s/otp2pk2n3g087zp/Live%20Migration.pdf Alexander Graf (3): Export savevm handlers outside of savevm.c Add migration debug device Add migration stream analyzation script hw/misc/Makefile.objs | 1 + hw/misc/debug_migration.c | 498 +++++++++++++++++++++++++++++++++++++++++++ include/qemu/savevm.h | 28 +++ savevm.c | 24 +-- scripts/analyze-migration.py | 483 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1012 insertions(+), 22 deletions(-) create mode 100644 hw/misc/debug_migration.c create mode 100644 include/qemu/savevm.h create mode 100755 scripts/analyze-migration.py -- 1.7.12.4