[libvirt] [PATCH 0/5] Use synchronous block job events in qemu_migration

Michal Privoznik mprivozn at redhat.com
Wed Apr 29 11:16:16 UTC 2015


On 16.04.2015 11:24, Michael Chapman wrote:
> This patch series converts qemu_migration to use the synchronous block job
> event code introduced in commit 630ee5ac.
> 
> It fixes two problems:
> 
> - Drive mirroring has been broken since that commit, since the event
>   indicating mirror readiness isn't processed while the VM object is locked.
> - Migration did not wait until the drive mirrors were properly cancelled,
>   and this could cause disk corruption.
> 
> Patch 1 moves qemuBlockJobEventProcess into a separate source file so it can
> be used by both qemu_driver and qemu_migration. Patch 2 introduces new
> qemuBlockJobSync* help functions to manage a synchronous block job. Patch 3
> ensures that a thread waiting on a synchronous block job event is woken up
> should the domain crash. Patches 4 and 5 use the new synchronous block job
> helpers in qemu_driver and qemu_migration respectively.
> 
> Michael Chapman (5):
>   qemuBlockJobEventProcess: move to new source file
>   qemuBlockJobSync*: introduce sync block job helpers
>   qemuProcessStop: wake up pending sync block jobs
>   qemuDomainBlockJobAbort: use sync block job helpers
>   qemu: migration: use sync block job helpers
> 
>  po/POTFILES.in            |   1 +
>  src/Makefile.am           |   1 +
>  src/qemu/qemu_blockjob.c  | 331 ++++++++++++++++++++++++++++++++++
>  src/qemu/qemu_blockjob.h  |  49 ++++++
>  src/qemu/qemu_driver.c    | 174 +++---------------
>  src/qemu/qemu_migration.c | 439 ++++++++++++++++++++++++++++------------------
>  src/qemu/qemu_process.c   |   7 +
>  7 files changed, 676 insertions(+), 326 deletions(-)
>  create mode 100644 src/qemu/qemu_blockjob.c
>  create mode 100644 src/qemu/qemu_blockjob.h
> 

ACK series.

Even though this is rather big patch set, it fixes important bug.
Therefore I'm pushing this now. Thanks for chasing the problem down.

Michal




More information about the libvir-list mailing list