From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54542) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2HPp-0005E1-Gf for qemu-devel@nongnu.org; Thu, 25 Jul 2013 05:00:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V2HPk-0000RW-5n for qemu-devel@nongnu.org; Thu, 25 Jul 2013 05:00:53 -0400 Received: from mail-ee0-x232.google.com ([2a00:1450:4013:c00::232]:35126) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2HPj-0000QJ-JV for qemu-devel@nongnu.org; Thu, 25 Jul 2013 05:00:47 -0400 Received: by mail-ee0-f50.google.com with SMTP id d49so782461eek.9 for ; Thu, 25 Jul 2013 02:00:46 -0700 (PDT) Date: Thu, 25 Jul 2013 11:00:43 +0200 From: Stefan Hajnoczi Message-ID: <20130725090043.GA21033@stefanha-thinkpad.redhat.com> References: <51E8E204.8000201@redhat.com> <1374254783-8077-1-git-send-email-alex@alex.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1374254783-8077-1-git-send-email-alex@alex.org.uk> Subject: Re: [Qemu-devel] [PATCH] [RFC] aio/timers: Drop alarm timers; introduce QEMUClock to AioContext; run timers in aio_poll List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alex Bligh Cc: Kevin Wolf , Anthony Liguori , qemu-devel@nongnu.org, Stefan Hajnoczi , Paolo Bonzini , rth@twiddle.net On Fri, Jul 19, 2013 at 06:26:23PM +0100, Alex Bligh wrote: > [ This is a patch for RFC purposes only. It is compile tested on Linux x86_64 only > and passes make check (or rather did before make check started dying in the > boot order test - different bug). I'd like to know whether I'm going in > the right direction ] Looks promising. > We no longer need alarm timers to trigger QEMUTimer as we'll be polling > them in aio_poll. > > Remove static declaration from qemu_new_clock and introduce qemu_free_clock. > > Maintain a list of QEMUClocks. > > Introduce qemu_clock_deadline_ns and qemu_clock_deadine_all_ns which calculate how > long aio_poll etc. should wait, plus (for the time being) a conversion to milliseconds. > > Make qemu_run_timers return a bool to indicate progress. > > Add QEMUClock to AioContext. > > Run timers attached to clock in aio_poll Too many logical changes for a single patch :). Please split this into a series. > @@ -52,6 +44,8 @@ struct QEMUClock { > > int type; > bool enabled; > + > + QLIST_ENTRY(QEMUClock) list; Please avoid global state. AioContext should be usable from multiple threads, this list would require synchronization. main-loop.c should call functions to run timers and calculate the nearest deadline on vm_clock/host_clock/rt_clock. It knows about them, they are defined in . That way no list is needed.