[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/2] block: make aio_poll(ctx, true) block wi
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/2] block: make aio_poll(ctx, true) block with no fds |
Date: |
Thu, 5 Dec 2013 16:55:52 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Nov 26, 2013 at 04:17:59PM +0100, Stefan Hajnoczi wrote:
> v2:
> * Oops, this patch got lost. Rebased onto qemu.git/master for 1.8
>
> Jan and Alex have expressed that aio_poll(ctx, blocking=true) should block
> even
> when there are no file descriptors registered. This can be handy since other
> threads may still kick the AioContext using aio_notify(ctx).
>
> A concrete example is a thread that has only a timer in its AioContext.
> aio_poll(ctx, true) should block until the timer expires or another thread
> invokes aio_notify(ctx).
>
> Alex and Paolo were concerned about bdrv_drain_all() which has the following
> comment:
>
> while (busy) {
> /* FIXME: We do not have timer support here, so this is effectively
> * a busy wait.
> */
> QTAILQ_FOREACH(bs, &bdrv_states, list) {
> if (bdrv_start_throttled_reqs(bs)) {
> busy = true;
> }
> }
>
> busy = bdrv_requests_pending_all();
> busy |= aio_poll(qemu_get_aio_context(), busy);
> }
>
> Patch 1 drops this outdated comment. The new I/O throttling code already
> eliminated the busy wait.
>
> Patch 2 drops the special case which returns immediately from aio_poll(ctx,
> true) when no file descriptors are registered.
>
> Note that aio_notify(ctx) still causes aio_poll(ctx, true) to return false. I
> don't see a need to change it so aio_poll(ctx, true) always returns true.
>
> Stefan Hajnoczi (2):
> block: clean up bdrv_drain_all() throttling comments
> aio: make aio_poll(ctx, true) block with no fds
>
> aio-posix.c | 5 -----
> aio-win32.c | 5 -----
> block.c | 7 +------
> tests/test-aio.c | 1 -
> 4 files changed, 1 insertion(+), 17 deletions(-)
Applied to my block tree:
https://github.com/stefanha/qemu/commits/block
Stefan
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2 0/2] block: make aio_poll(ctx, true) block with no fds,
Stefan Hajnoczi <=