Original idea of bitmaps postcopy migration is that bitmaps are non
critical data, and their loss is not serious problem. So, using postcopy
method on any failure we should just drop unfinished bitmaps and
continue guest execution.
However, it doesn't work so. It crashes, fails, it goes to
postcopy-recovery feature. It does anything except for behavior we want.
These series fixes at least some problems with error handling during
bitmaps migration postcopy.
v1 was "[PATCH 0/7] Fix crashes on early shutdown during bitmaps
postcopy"
v2:
Most of patches are new or changed a lot.
Only patches 06,07 mostly unchanged, just rebased on refactorings.
Vladimir Sementsov-Ogievskiy (22):
migration/block-dirty-bitmap: fix dirty_bitmap_mig_before_vm_start
migration/block-dirty-bitmap: rename state structure types
migration/block-dirty-bitmap: rename dirty_bitmap_mig_cleanup
migration/block-dirty-bitmap: move mutex init to dirty_bitmap_mig_init
migration/block-dirty-bitmap: refactor state global variables
migration/block-dirty-bitmap: rename finish_lock to just lock
migration/block-dirty-bitmap: simplify dirty_bitmap_load_complete
migration/block-dirty-bitmap: keep bitmap state for all bitmaps
migration/block-dirty-bitmap: relax error handling in incoming part
migration/block-dirty-bitmap: cancel migration on shutdown
migration/savevm: don't worry if bitmap migration postcopy failed
qemu-iotests/199: fix style
qemu-iotests/199: drop extra constraints
qemu-iotests/199: better catch postcopy time
qemu-iotests/199: improve performance: set bitmap by discard
qemu-iotests/199: change discard patterns
qemu-iotests/199: increase postcopy period
python/qemu/machine: add kill() method
qemu-iotests/199: prepare for new test-cases addition
qemu-iotests/199: check persistent bitmaps
qemu-iotests/199: add early shutdown case to bitmaps postcopy
qemu-iotests/199: add source-killed case to bitmaps postcopy
Cc: John Snow <jsnow@redhat.com>
Cc: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Fam Zheng <fam@euphon.net>
Cc: Juan Quintela <quintela@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Cleber Rosa <crosa@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Max Reitz <mreitz@redhat.com>
Cc: qemu-block@nongnu.org
Cc: qemu-devel@nongnu.org
Cc: qemu-stable@nongnu.org # for patch 01
migration/migration.h | 3 +-
migration/block-dirty-bitmap.c | 444 +++++++++++++++++++++------------
migration/migration.c | 15 +-
migration/savevm.c | 37 ++-
python/qemu/machine.py | 12 +-
tests/qemu-iotests/199 | 244 ++++++++++++++----
tests/qemu-iotests/199.out | 4 +-
7 files changed, 529 insertions(+), 230 deletions(-)