[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv11 00/31] aio / timers: Add AioContext timers an
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCHv11 00/31] aio / timers: Add AioContext timers and use ppoll |
Date: |
Fri, 16 Aug 2013 17:24:58 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Aug 15, 2013 at 09:34:08PM +0100, Alex Bligh wrote:
> [ This patch set is available from git at:
> https://github.com/abligh/qemu/tree/aio-timers11
> As autogenerated patch 30 of the series is too large for the mailing list. ]
>
> This patch series adds support for timers attached to an AioContext clock
> which get called within aio_poll.
>
> In doing so it removes alarm timers and moves to use ppoll where possible.
>
> This patch set 'sort of' passes make check (see below for caveat)
> including a new test harness for the aio timers, but has not been
> tested much beyond that. In particular, the win32 changes have not
> even been compile tested. Equally, alterations to use_icount
> are untested.
>
> Caveat: I have had to alter tests/test-aio.c so the following error
> no longer occurs.
>
> ERROR:tests/test-aio.c:346:test_wait_event_notifier_noflush: assertion
> failed: (aio_poll(ctx, false))
>
> As gar as I can tell, this check was incorrect, in that it checking
> aio_poll makes progress when in fact it should not make progress. I
> fixed an issue where aio_poll was (as far as I can tell) wrongly
> returning true on a timeout, and that generated this error.
>
> Note also the comment on patch 19 in relation to a possible bug
> in cpus.c.
>
> The penultimate patch is patch which is created in an automated manner
> using scripts/switch-timer-api, added in this patch set. It violates some
> coding standards (e.g. line length >= 80 characters), but this is preferable
> in terms of giving a provably correct conversion. This patch is too
> large for the mailing list, so
>
> EITHER: get it from git at the URL at the top of this message.
>
> OR: Do the following:
> 1. Apply patches 0000-0029 inclusive
> 2. Run scripts/switch-timer-api
> 3. git commit -a (+ suitable commit message)
> 4. Apply patch 0031
>
> If there is demand I can split it one commit per file.
>
> This patch set has been compile tested & make check tested on a
> 'christmas-tree' configuration, meaning a configuration with every --enable-*
> value tested that can be easily configured on Ubuntu Precise,
> after application of each patch.
Please run qemu-iotests on this series and fix any failures. It is
failing with "I/O thread has spun for 1000 iterations".
Stefan
- [Qemu-devel] [PATCHv11 27/31] aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API, (continued)
- [Qemu-devel] [PATCHv11 27/31] aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 20/31] aio / timers: Add documentation and new format calls, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 28/31] aio / timers: Add test harness for AioContext timers, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 21/31] aio / timers: Remove alarm timers, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 29/31] aio / timers: Add scripts/switch-timer-api, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 19/31] aio / timers: Use all timerlists in icount warp calculations, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 26/31] aio / timers: Convert rtc_clock to be a QEMUClockType, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 31/31] aio / timers: Remove legacy interface, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 24/31] aio / timers: Rearrange timer.h & make legacy functions call non-legacy, Alex Bligh, 2013/08/15
- [Qemu-devel] [PATCHv11 30/31] aio / timers: Switch entire codebase to the new timer API, Alex Bligh, 2013/08/15
- Re: [Qemu-devel] [PATCHv11 00/31] aio / timers: Add AioContext timers and use ppoll,
Stefan Hajnoczi <=