[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 0/5] blockjob: AioContext change support for mirr

From: Stefan Hajnoczi
Subject: [Qemu-devel] [PATCH v4 0/5] blockjob: AioContext change support for mirror and backup
Date: Tue, 14 Jun 2016 19:17:03 +0100

 * Add .pause()/.resume() callbacks to really quiesce during
   block_job_pause_point() [Paolo]
 * Add AioContext change support for backup block job
 * Tested drive_mirror + migration and drive_backup + reboot

 * Push infrastructure down into blockjob.c so other jobs can reuse it [Stefan]
 * Tested with drive_mirror + migration [Stefan]

 * Fam introduced the concept of a synchronous aio_poll() loop to quiesce the
   block job during detach

When dataplane is enabled or disabled the drive switches to a new AioContext.
The mirror and backup block jobs must also move to the new AioContext so that
drive accesses are always made within its AioContext.

This series extends the block job pause functionality so that detaching from an
AioContext pauses the job and attaching to the new AioContext resumes the job.

Pause points are added to the mirror job so that long I/O loops can yield for
an AioContext switch.  Other block jobs need pause points too but this can be
done as a follow-up series.

Stefan Hajnoczi (5):
  blockjob: move iostatus reset out of block_job_enter()
  blockjob: add pause points
  blockjob: add AioContext attached callback
  mirror: follow AioContext change gracefully
  backup: follow AioContext change gracefully

 block/backup.c           | 22 ++++++++-----
 block/mirror.c           | 45 +++++++++++++++++++++-----
 blockdev.c               |  1 +
 blockjob.c               | 84 ++++++++++++++++++++++++++++++++++++++++++------
 include/block/blockjob.h | 42 ++++++++++++++++++++++--
 5 files changed, 166 insertions(+), 28 deletions(-)


reply via email to

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