From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59888) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzMpc-0004Br-He for qemu-devel@nongnu.org; Wed, 17 Jul 2013 04:11:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UzMpa-0008GS-4N for qemu-devel@nongnu.org; Wed, 17 Jul 2013 04:11:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13179) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzMpZ-0008G8-RP for qemu-devel@nongnu.org; Wed, 17 Jul 2013 04:11:26 -0400 Message-ID: <51E6519B.6060609@redhat.com> Date: Wed, 17 Jul 2013 10:11:07 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <51E4613D.9000106@redhat.com> <44590808AF4A6E7DC093637A@nimrod.local> <51E4E54A.10908@redhat.com> <51E4F77C.2090509@redhat.com> <794E19D97CCC267CCBFA8397@Ximines.local> <51E56A1A.50502@redhat.com> <19631228D7B62545DC6A2928@Ximines.local> <51E57AF3.1050409@redhat.com> <20130717030230.GA27807@stefanha-thinkpad.redhat.com> <9EDD71F21C4D65014805FB9B@nimrod.local> In-Reply-To: <9EDD71F21C4D65014805FB9B@nimrod.local> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] [RFC] aio/async: Add timed bottom-halves List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alex Bligh Cc: Kevin Wolf , Anthony Liguori , Stefan Hajnoczi , qemu-devel@nongnu.org, Stefan Hajnoczi , rth@twiddle.net Il 17/07/2013 10:07, Alex Bligh ha scritto: > Stefan, > > --On 17 July 2013 11:02:30 +0800 Stefan Hajnoczi > wrote: > >> The steps to achieving this: >> >> 1. Drop alarm timers from qemu-timer.c and calculate g_poll() timeout >> instead for the main loop. >> >> 2. Introduce a per-AioContext aio_ctx_clock that can be used with >> qemu_new_timer() to create a QEMUTimer that expires during >> aio_poll(). >> >> 3. Calculate g_poll() timeout for aio_ctx_clock in aio_poll(). > > A couple of questions: > > 1. How would this work where the user has no main loop, e.g. qemu-img? A > block driver may well still need timers. The block driver should only use aio_ctx_clock, and those _would_ be handled in aio_poll(). > 3. Is it safe to anything you can do in a bh in a timer? IE are users every > going to need to schedule a bh from a timer? If so, this seems a bit > long winded for users that want bh functionality. It is safe. Paolo