qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4] QEMUBH: make AioContext's bh re-entrant


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v4] QEMUBH: make AioContext's bh re-entrant
Date: Mon, 24 Jun 2013 10:01:02 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Jun 24, 2013 at 05:54:26PM +0800, Liu Ping Fan wrote:
> BH will be used outside big lock, so introduce lock to protect
> between the writers, ie, bh's adders and deleter. The lock only
> affects the writers and bh's callback does not take this extra lock.
> Note that for the same AioContext, aio_bh_poll() can not run in
> parallel yet.
> 
> Signed-off-by: Liu Ping Fan <address@hidden>
> 
> --------
> v3->v4
>   resolve memory order of bh->idle and ->scheduled
>   add comments for qemu_bh_delete/cancel
> 
> 
> ---
>  async.c             | 32 ++++++++++++++++++++++++++++++--
>  include/block/aio.h |  7 +++++++
>  2 files changed, 37 insertions(+), 2 deletions(-)
> 
> diff --git a/async.c b/async.c
> index 90fe906..108d7c3 100644
> --- a/async.c
> +++ b/async.c
> @@ -47,11 +47,16 @@ QEMUBH *aio_bh_new(AioContext *ctx, QEMUBHFunc *cb, void 
> *opaque)
>      bh->ctx = ctx;
>      bh->cb = cb;
>      bh->opaque = opaque;
> +    qemu_mutex_lock(&ctx->bh_lock);
>      bh->next = ctx->first_bh;
> +    /* Make sure the members ready before putting bh into list */
> +    smp_wmb();

s/members/member is/



reply via email to

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