qemu-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]