[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
[Qemu-block] [PATCH 12/12] aio-posix: Assert that aio_poll() is always called in home thread, Kevin Wolf, 2019/02/18
- Re: [Qemu-block] [PATCH 12/12] aio-posix: Assert that aio_poll() is always called in home thread,
Eric Blake <=