[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups |
Date: |
Mon, 30 Nov 2009 18:21:19 +0100 |
User-agent: |
StGIT/0.14.3 |
This series is a larger rework of the block migration support qemu
recently gained. Besides lots of code refactorings the major changes
are:
- Faster restore due to larger block sizes (even if the target disk is
unallocated)
- Off-by-one fixes in the block dirty tracking code
- Allow for multiple migrations (after cancellation or if migrating
into a backup image)
- Proper error handling
- Progress reporting fixes: report to monitor instead of stdout, report
sum of multiple disks
- Report disk migration progress via 'info migrate'
- Progress report during restore
One patch is directly taken from Pierre Riteau queue [1] who happend to
work on the some topic the last days, two more are derived from his
commits.
These patches make block migration usable for us. Still, there are two
more major improvements on my wish/todo list:
- Respect specified maximum migration downtime (will require tracking
of the number of dirty blocks + some coordination with ram migration)
- Do not transfere unallocated disk space (also for raw images, ie. add
bdrv_is_allocated support for the latter)
In an off-list chat, Liran additionally brought up the topic that RAM
migration should not start too early so that we avoid re-transmitting
dirty pages over and over again while the disk image is slowly beamed
over.
I hope we can join our efforts to resolve the open topics quickly, the
critical ones ideally before the merge window closes.
Find the patches also at git://git.kiszka.org/qemu.git queues/migration
Jan Kiszka (22):
migration: Fix use of file after release
migration: Catch multiple start commands
block migration: Fix coding style and whitespaces
block migration: Rework constants API
block migration: Cleanup dirty tracking code
block migration: Avoid large stack buffer
block migration: Avoid indirection of block_mig_state
block migration: Drop dead code
block migration: Switch device and block lists to QSIMPLEQ
block migration: Initialize remaining BlkMigState fields
block migration: Clean up use of total_sectors
block migration: Consolidate mig_read_device_bulk into
mig_save_device_bulk
block migration: Consolidate block transmission
block migration: Add error handling/propagation
ram migration: Stop loading on error
live migration: Allow cleanup after cancellation or error
block migration: Report overall migration progress
live migration: Propagate output monitor to callback handler
block migration: Fix outgoing progress output
block migration: Report progress also via info migration
block migration: Add support for restore progress reporting
block migration: Increase dirty chunk size to 1M
Pierre Riteau (1):
Import a simple queue implementation from NetBSD
block-migration.c | 737 ++++++++++++++++++++++++++---------------------------
block-migration.h | 16 +-
block.c | 127 +++++-----
block.h | 11 +-
block_int.h | 3 +-
hw/hw.h | 3 +-
migration-exec.c | 12 +-
migration-fd.c | 9 +-
migration-tcp.c | 10 +-
migration-unix.c | 10 +-
migration.c | 52 +++--
migration.h | 13 +-
qemu-queue.h | 109 ++++++++-
savevm.c | 42 ++-
sysemu.h | 9 +-
vl.c | 13 +-
16 files changed, 653 insertions(+), 523 deletions(-)
[1] http://github.com/priteau/qemu/commits/blkmig
- [Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups,
Jan Kiszka <=
- [Qemu-devel] [PATCH 13/23] block migration: Consolidate mig_read_device_bulk into mig_save_device_bulk, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 02/23] migration: Catch multiple start commands, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 23/23] block migration: Increase dirty chunk size to 1M, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 16/23] ram migration: Stop loading on error, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 05/23] block migration: Cleanup dirty tracking code, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 06/23] block migration: Avoid large stack buffer, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 19/23] live migration: Propagate output monitor to callback handler, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 21/23] block migration: Report progress also via info migration, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 01/23] migration: Fix use of file after release, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 08/23] block migration: Drop dead code, Jan Kiszka, 2009/11/30