qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups
@ 2009-11-30 17:21 Jan Kiszka
  2009-11-30 17:21 ` [Qemu-devel] [PATCH 03/23] block migration: Fix coding style and whitespaces Jan Kiszka
                   ` (23 more replies)
  0 siblings, 24 replies; 35+ messages in thread
From: Jan Kiszka @ 2009-11-30 17:21 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: qemu-devel, Liran Schour, Pierre Riteau

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

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2009-12-01 17:17 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-30 17:21 [Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 03/23] block migration: Fix coding style and whitespaces Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 02/23] migration: Catch multiple start commands Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 01/23] migration: Fix use of file after release Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 04/23] block migration: Rework constants API Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 13/23] block migration: Consolidate mig_read_device_bulk into mig_save_device_bulk Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 10/23] block migration: Switch device and block lists to QSIMPLEQ Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 05/23] block migration: Cleanup dirty tracking code Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 07/23] block migration: Avoid indirection of block_mig_state Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 08/23] block migration: Drop dead code Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 11/23] block migration: Initialize remaining BlkMigState fields Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 12/23] block migration: Clean up use of total_sectors Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 06/23] block migration: Avoid large stack buffer Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 09/23] Import a simple queue implementation from NetBSD Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 19/23] live migration: Propagate output monitor to callback handler Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 20/23] block migration: Fix outgoing progress output Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 17/23] live migration: Allow cleanup after cancellation or error Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 14/23] block migration: Consolidate block transmission Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 16/23] ram migration: Stop loading on error Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 22/23] block migration: Add support for restore progress reporting Jan Kiszka
2009-12-01 14:20   ` [Qemu-devel] [PATCH v2 " Jan Kiszka
2009-12-01 17:01     ` [Qemu-devel] " Pierre Riteau
2009-12-01 17:17       ` Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 21/23] block migration: Report progress also via info migration Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 18/23] block migration: Report overall migration progress Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 15/23] block migration: Add error handling/propagation Jan Kiszka
2009-11-30 17:21 ` [Qemu-devel] [PATCH 23/23] block migration: Increase dirty chunk size to 1M Jan Kiszka
2009-11-30 18:34 ` [Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups Anthony Liguori
2009-11-30 18:50   ` Pierre Riteau
2009-11-30 19:23     ` Pierre Riteau
2009-11-30 19:34       ` [Qemu-devel] [PATCH 24/23] block migration: Skip zero-sized disks Jan Kiszka
2009-11-30 19:25     ` [Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups Jan Kiszka
2009-11-30 19:34       ` Pierre Riteau
2009-11-30 19:44         ` Jan Kiszka
2009-11-30 18:50   ` Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).