From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V0bYa-0003zd-5e for qemu-devel@nongnu.org; Sat, 20 Jul 2013 14:07:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V0bYX-00082m-7A for qemu-devel@nongnu.org; Sat, 20 Jul 2013 14:07:00 -0400 Received: from mail.avalus.com ([2001:41c8:10:1dd::10]:52287) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V0bYW-00082C-Vd for qemu-devel@nongnu.org; Sat, 20 Jul 2013 14:06:57 -0400 From: Alex Bligh Date: Sat, 20 Jul 2013 19:06:36 +0100 Message-Id: <1374343603-29183-1-git-send-email-alex@alex.org.uk> In-Reply-To: <1E8E204.8000201@redhat.com> References: <1E8E204.8000201@redhat.com> Subject: [Qemu-devel] [PATCHv2] [RFC 0/7] aio / timers: Add AioContext timers and use ppoll List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Anthony Liguori , Alex Bligh , Stefan Hajnoczi , Paolo Bonzini , rth@twiddle.net 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(-) -- 1.7.9.5