On Sat, Jul 20, 2013 at 07:06:36PM +0100, Alex Bligh wrote: > 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. > > Caveat: make check fails one test only with: > > 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 is 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. > > Alex Bligh (7): > aio / timers: Remove alarm timers > aio / timers: qemu-timer.c utility functions and add list of clocks > aio / timers: add ppoll support with qemu_g_poll_ns > aio / timers: Make qemu_run_timers and qemu_run_all_timers return > progress > aio / timers: Add a clock to AioContext > aio / timers: Switch to ppoll, run AioContext timers in > aio_poll/aio_dispatch > aio / timers: Add test harness for AioContext timers > > aio-posix.c | 20 +- > aio-win32.c | 20 +- > async.c | 18 +- > configure | 19 ++ > include/block/aio.h | 5 + > include/qemu/timer.h | 25 +- > main-loop.c | 47 ++-- > qemu-timer.c | 619 > +++++++++----------------------------------------- > tests/test-aio.c | 124 +++++++++- > vl.c | 5 +- > 10 files changed, 363 insertions(+), 539 deletions(-)
This looks promising for QEMU 1.7. Please split into logical patches - some of the patches you posted are too big and do several independent things. Also please order patches so qemu.git remains bisectable - remove alarm timers after switch event loops to use timeouts. Stefan