From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSEZ4-0006wB-SR for qemu-devel@nongnu.org; Wed, 09 May 2012 17:36:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SSEZ3-0006Ks-2Y for qemu-devel@nongnu.org; Wed, 09 May 2012 17:36:54 -0400 Received: from e38.co.us.ibm.com ([32.97.110.159]:36466) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSEZ2-0006J9-Q8 for qemu-devel@nongnu.org; Wed, 09 May 2012 17:36:53 -0400 Received: from /spool/local by e38.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 9 May 2012 15:36:48 -0600 Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by d03dlp02.boulder.ibm.com (Postfix) with ESMTP id AD42F3E40049 for ; Wed, 9 May 2012 15:36:45 -0600 (MDT) Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q49LajTr099754 for ; Wed, 9 May 2012 15:36:45 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q49Laj74028229 for ; Wed, 9 May 2012 15:36:45 -0600 Message-ID: <4FAAE36A.1040808@us.ibm.com> Date: Wed, 09 May 2012 16:36:42 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <4FAAC3A3.5040503@siemens.com> <4FAAC521.5000907@msgid.tls.msk.ru> <4FAAC6B2.7040009@siemens.com> <4FAACA0A.5040602@us.ibm.com> <4FAACC0F.9080702@siemens.com> <4FAACD2F.30702@us.ibm.com> <4FAACF69.50600@siemens.com> <4FAADAC5.3040001@us.ibm.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1.1] coroutine: Avoid ucontext usage on i386 Linux host List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Kevin Wolf , Jan Kiszka , Michael Tokarev , qemu-devel On 05/09/2012 04:27 PM, Peter Maydell wrote: > On 9 May 2012 21:59, Anthony Liguori wrote: >> On 05/09/2012 03:46 PM, Peter Maydell wrote: >>> Longer term (ie post 1.1) I'm strongly in favour of kicking >>> out coroutines, because I think there clearly is no single >>> solid portable implementation possible. C just isn't designed >>> to allow them; better not to try to swim against the current. > >> Unfortunately, voting for code to be different doesn't actually make it >> different. > > Yeah, I agree with this sentiment... > >> If you're volunteering to rewrite the block layer to not require coroutines >> (either by using a state machine or by using re-entrant threads and fixing >> any locking issues associated with that) that's wonderful. >> >> But we decided to not do synchronous I/O years ago and still haven't removed >> it all from the tree. Coroutines got us much closer to getting rid of >> synchronous I/O. > > ...but I would at least like us to take the position that we don't > introduce *more* users of coroutines. I think the long term plan has been: 1) replace synchronous I/O users with coroutines + async I/O 2) promote coroutines to threads by introducing fine grain locking. I don't think avoiding coroutines helps us along this route nor does it help eliminate immediate users of coroutines. I think our best strategy forward is to get rid of async I/O in the blocker layer and in devices. Then I think we should promote coroutines as much as possible. Regards, Anthony Liguori > > -- PMM >