qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH 02/12] block: Introduce bdrv_lock and bdrv_u


From: Eric Blake
Subject: Re: [Qemu-devel] [RFC PATCH 02/12] block: Introduce bdrv_lock and bdrv_unlock API
Date: Fri, 29 May 2015 10:57:15 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 05/29/2015 04:53 AM, Fam Zheng wrote:
> For various purposes, BDS users call bdrv_drain or bdrv_drain_all to make sure
> there are no pending requests duringA a series of operations on the BDS. But 
> in

s/duringA/during/

> the middle of operations, the caller may 1) yield from a coroutine 
> (mirror_run);
> 2) defer the next part of work to a BH (mirror_run); 3) call nested aio_poll
> (qmp_transaction); etc..
> 
> This lock/unlock API is introduced to help assure above complications won't
> spoil the purpose of the bdrv_drain(): bdrv_lock should help quiesce other
> readers and writers in the beginning of such operations, and bdrv_unlock 
> should
> resume the blocked requests.
> 
> A notifier list is added to allow devices to cooperate with the lock and pause
> themselves, for example, by not processing more requests on the NBD export.
> 
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  block.c                   | 10 +++++++
>  block/io.c                | 69 
> +++++++++++++++++++++++++++++++++++++++++++++++
>  include/block/block.h     | 39 +++++++++++++++++++++++++++
>  include/block/block_int.h |  5 ++++
>  4 files changed, 123 insertions(+)
> 

I'll leave the technical review on this series to those more familiar
with coroutines.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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