qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 0/8] blockjob: AioContext change support for


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v5 0/8] blockjob: AioContext change support for mirror and backup
Date: Fri, 17 Jun 2016 13:11:49 +0100
User-agent: Mutt/1.6.1 (2016-04-27)

On Thu, Jun 16, 2016 at 05:56:21PM +0100, Stefan Hajnoczi wrote:
> v5:
>  * Mark .pause()/.resume() as coroutine_fn [Paolo]
>  * Switch to coroutine-friendly mirror_drain() in mirror_pause() [Paolo]
>  * Rename block_job_is_paused() to block_job_should_pause() [Fam]
>  * New patch to add block_job_get_aio_context() helper and use it in the
>    aio_poll() loop [Fam]
>  * New patch to make bdrv_remove_aio_notifier() safe during attached/detach
>    callbacks
> 
> v4:
>  * 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
> 
> v3:
>  * Push infrastructure down into blockjob.c so other jobs can reuse it 
> [Stefan]
>  * Tested with drive_mirror + migration [Stefan]
> 
> v2:
>  * 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 (8):
>   blockjob: move iostatus reset out of block_job_enter()
>   blockjob: rename block_job_is_paused()
>   blockjob: add pause points
>   blockjob: add block_job_get_aio_context()
>   block: use safe iteration over AioContext notifiers
>   blockjob: add AioContext attached callback
>   mirror: follow AioContext change gracefully
>   backup: follow AioContext change gracefully
> 
>  block.c                   |  46 ++++++++++++++++-----
>  block/backup.c            |  22 ++++++----
>  block/mirror.c            |  43 +++++++++++++++----
>  blockdev.c                |   1 +
>  blockjob.c                | 103 
> ++++++++++++++++++++++++++++++++++++++++------
>  include/block/block_int.h |   2 +
>  include/block/blockjob.h  |  51 +++++++++++++++++------
>  7 files changed, 217 insertions(+), 51 deletions(-)

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan

Attachment: signature.asc
Description: PGP signature


reply via email to

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