[libvirt] [PATCH 00/24] qemu: Add support for -incoming defer

Jiri Denemark jdenemar at redhat.com
Thu Nov 12 18:37:02 UTC 2015

Traditionally, we pass incoming migration URI on QEMU command line,
which has some drawbacks. Depending on the URI QEMU may initialize its
migration state immediately without giving us a chance to set any
additional migration parameters (this applies mainly for fd: URIs). For
some URIs the monitor may be completely blocked from the beginning until
migration is finished, which means we may be stuck in qmp_capabilities
command without being able to send any QMP commands.

QEMU solved this by introducing "defer" parameter for -incoming command
line option. This will tell QEMU to prepare for an incoming migration
while the actual incoming URI is sent using migrate-incoming QMP
command. Before calling this command we can normally talk to the
monitor and even set any migration parameters which will be honored by
the incoming migration.

Jiri Denemark (24):
  qemu: Refactor waiting for completed migration on destination
  qemu: Refactor the code to build -incoming command line
  qemu: Don't generate migration URI in qemuBuildCommandLine
  qemu: Move incoming URI code to qemu_migration
  qemu: Introduce qemuProcessIncomingDef
  qemu: Always set async job when starting a domain
  qemu: Add APIs for migrate-incoming QMP command
  qemu: Use -incoming defer for migrations
  qemu: Rename stdin_{fd,path} in qemuProcessStart
  qemu: Separate hook handling code from qemuProcessStart
  qemu: Separate graphics handling code from qemuProcessStart
  qemu: Separate raw IO code from qemuProcessStart
  qemu: Enter monitor within qemuProcessSetLinkStates
  qemu: Separate balloon code from qemuProcessStart
  qemu: Introduce qemuProcessMakeDir
  qemu: Do not infer flags from other qemuProcessStart arguments
  qemu: Close logfd when closing monitor
  qemu: Introduce qemuProcessInit
  qemu: Introduce qemuProcessLaunch
  qemu: Introduce qemuProcessFinish
  qemu: Separate incoming URI generation from qemuMigrationPrepareAny
  qemu: Kill QEMU process if Prepare phase fails
  qemu: Skip starting NBD servers for offline migration
  qemu: Use qemuProcessLaunch in migration Prepare phase

 src/qemu/qemu_capabilities.c                 |   3 +
 src/qemu/qemu_capabilities.h                 |   3 +
 src/qemu/qemu_command.c                      |  42 +-
 src/qemu/qemu_command.h                      |   4 +-
 src/qemu/qemu_domain.c                       |   3 +
 src/qemu/qemu_domain.h                       |   1 +
 src/qemu/qemu_driver.c                       |  74 ++-
 src/qemu/qemu_migration.c                    | 357 +++++++----
 src/qemu/qemu_migration.h                    |  11 +
 src/qemu/qemu_monitor.c                      |  14 +
 src/qemu/qemu_monitor.h                      |   3 +
 src/qemu/qemu_monitor_json.c                 |  25 +
 src/qemu/qemu_monitor_json.h                 |   5 +
 src/qemu/qemu_process.c                      | 881 +++++++++++++++++----------
 src/qemu/qemu_process.h                      |  41 +-
 tests/qemucapabilitiesdata/caps_2.4.0-1.caps |   1 +
 tests/qemuxml2argvtest.c                     |  16 +-
 17 files changed, 969 insertions(+), 515 deletions(-)


More information about the libvir-list mailing list