From owner-freebsd-arch@FreeBSD.ORG Wed Mar 26 01:23:31 2003 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D8B8D37B404 for ; Wed, 26 Mar 2003 01:23:31 -0800 (PST) Received: from mail.chesapeake.net (chesapeake.net [205.130.220.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id 15BE643FA3 for ; Wed, 26 Mar 2003 01:23:31 -0800 (PST) (envelope-from jroberson@chesapeake.net) Received: from localhost (jroberson@localhost) by mail.chesapeake.net (8.11.6/8.11.6) with ESMTP id h2Q9NLi96163; Wed, 26 Mar 2003 04:23:21 -0500 (EST) (envelope-from jroberson@chesapeake.net) Date: Wed, 26 Mar 2003 04:23:21 -0500 (EST) From: Jeff Roberson To: Marc Olzheim In-Reply-To: <20030326091826.GA79113@stack.nl> Message-ID: <20030326042114.H64602-100000@mail.chesapeake.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Spam-Status: No, hits=-16.0 required=5.0 tests=AWL,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, REPLY_WITH_QUOTES autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) cc: arch@freebsd.org cc: kse@elischer.org cc: Julian Elischer Subject: Re: 1:1 Threading implementation. X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Mar 2003 09:23:32 -0000 On Wed, 26 Mar 2003, Marc Olzheim wrote: > On Wed, Mar 26, 2003 at 03:36:57AM -0500, Jeff Roberson wrote: > > First, if your application has more threads than cpus it is written > > incorrectly. For people who are doing thread pools instead of event > > driven IO models they will encounter the same overhead with M:N as 1:1. > > I'm not sure what applications are entirely compute and have more threads > > than cpus. These are the only ones which really theoretically benefit. I > > don't think our threading model should be designed to optimize poorly > > thought out applications. > > Might I suggest that there are 'nice' C++ ways of using thread-classes > where both the usual C++ dogmas of readability and reuseability make you > easily end up with more threads than cpus... > I think that from a userland's point of view, most programmers shouldn't > be caring less about how many cpus the machine has their core is running > on. Sure, but in these cases you're not likely to be using them in performance critical code. Which means you're not likely to be using all of the cpu.. Which means you're going to have to go block in the kernel anyway. And so, really what we're talking about is wasted memory here. Not even many cpu cycles. I think people who actually care about performance don't want the M:N overhead. 1:1 will be faster for them. For the rest, well, they didn't care about performance and so why should we work so hard to make it marginally faster for them? > With this (not limited to) C++ model in mind, the M:N way would be a > great thing to have. > > Zlo >