qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH 12/12] aio-posix: Assert that aio_poll() is alwa


From: Eric Blake
Subject: Re: [Qemu-block] [PATCH 12/12] aio-posix: Assert that aio_poll() is always called in home thread
Date: Mon, 18 Feb 2019 14:58:08 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0

On 2/18/19 10:18 AM, Kevin Wolf wrote:
> aio_poll() has an existing assertion that the function is only called
> from the AioContext's home thread if blocking is allowed.
> 
> This is not enough, some handlers make assumptions about the thread they
> run in. Extend the assertion to non-blocking calls, too.
> 
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
>  util/aio-posix.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 

Reviewed-by: Eric Blake <address@hidden>

> diff --git a/util/aio-posix.c b/util/aio-posix.c
> index 8640dfde9f..6fbfa7924f 100644
> --- a/util/aio-posix.c
> +++ b/util/aio-posix.c
> @@ -613,6 +613,8 @@ bool aio_poll(AioContext *ctx, bool blocking)
>      int64_t timeout;
>      int64_t start = 0;
>  
> +    assert(in_aio_context_home_thread(ctx));
> +
>      /* aio_notify can avoid the expensive event_notifier_set if
>       * everything (file descriptors, bottom halves, timers) will
>       * be re-evaluated before the next blocking poll().  This is
> @@ -621,7 +623,6 @@ bool aio_poll(AioContext *ctx, bool blocking)
>       * so disable the optimization now.
>       */
>      if (blocking) {
> -        assert(in_aio_context_home_thread(ctx));
>          atomic_add(&ctx->notify_me, 2);
>      }
>  
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



reply via email to

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