From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946077AbXBBVKH (ORCPT ); Fri, 2 Feb 2007 16:10:07 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1946080AbXBBVKH (ORCPT ); Fri, 2 Feb 2007 16:10:07 -0500 Received: from smtp.osdl.org ([65.172.181.24]:40476 "EHLO smtp.osdl.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946077AbXBBVKG (ORCPT ); Fri, 2 Feb 2007 16:10:06 -0500 Date: Fri, 2 Feb 2007 13:09:39 -0800 (PST) From: Linus Torvalds To: Davide Libenzi cc: Alan , Ingo Molnar , Zach Brown , Linux Kernel Mailing List , linux-aio@kvack.org, Suparna Bhattacharya , Benjamin LaHaise Subject: Re: [PATCH 2 of 4] Introduce i386 fibril scheduling In-Reply-To: Message-ID: References: <20070201083611.GC18233@elte.hu> <20070202104900.GA13941@elte.hu> <20070202195932.15b9b4ed@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2 Feb 2007, Davide Libenzi wrote: > > Actually, coroutines are not too bad to program once you have a > total-coverage async scheduler to run them. No, no, I don't disagree at all. In fact, I agree emphatically. It's just that you need the scheduler to run them, in order to not "see" them as coroutines. Then, you can program everything *as*if* it was just a regular declarative linear language with multiple threads). And that gets us the same programming interface as we always have, and people can forget about the fact that in a very real sense, they are using coroutines with the scheduler just keeping track of it all for them. After all, that's what we do between processes *anyway*. You can technically see the kernel as one big program that uses coroutines and the scheduler just keeping track of every coroutine instance. It's just that I doubt that any kernel programmer really thinks in those terms. You *think* in terms of "threads". Linus