From owner-freebsd-current@FreeBSD.ORG Fri Oct 27 23:32:25 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7081D16A4A0; Fri, 27 Oct 2006 23:32:25 +0000 (UTC) (envelope-from prvs=julian=44840db18@elischer.org) Received: from a50.ironport.com (a50.ironport.com [63.251.108.112]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B33043D7C; Fri, 27 Oct 2006 23:32:20 +0000 (GMT) (envelope-from prvs=julian=44840db18@elischer.org) Received: from unknown (HELO [10.251.18.229]) ([10.251.18.229]) by a50.ironport.com with ESMTP; 27 Oct 2006 16:32:20 -0700 Message-ID: <45429703.8070305@elischer.org> Date: Fri, 27 Oct 2006 16:32:19 -0700 From: Julian Elischer User-Agent: Thunderbird 1.5.0.7 (Macintosh/20060909) MIME-Version: 1.0 To: Paul Allen References: <917908193.20061027102647@serebryakov.spb.ru> <20061027103924.F79313@fledge.watson.org> <45426071.7020403@elischer.org> <602423478.20061028001449@serebryakov.spb.ru> <4542896D.1050001@elischer.org> <20061027231642.GJ30707@riyal.ugcs.caltech.edu> In-Reply-To: <20061027231642.GJ30707@riyal.ugcs.caltech.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Lev Serebryakov , Robert Watson , current@freebsd.org Subject: Re: KSE, libpthread & libthr: almost newbie question X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 23:32:25 -0000 Paul Allen wrote: >>From Julian Elischer , Fri, Oct 27, 2006 at 03:34:21PM -0700: >> Lev Serebryakov wrote: >> basically, if you and I both write programs to do a particular job >> on a timesharing system, and you use threads to do so and I use >> a sophisticated event handler/state machine, I shouldn't find that >> my program is running like a pig because yours has 1000 slots in the >> run queue and I only get run 1 in 1001 ticks. > And if this hypothetical user with the 1000 threads instead uses 1000 > processes we should just look the other way? Or worse we should encourage > him to use processes instead of threads despite that the former ought > to consume more wall-time because of the extra overhead? > > The answer to your situation is rlimits. there is class of problems (e.g. some java programs) that have THOUSANDS of threads, each representing an active aspect of some object. How do you put an rlimit on that without either 1/ stopping the program from working or 2/ allowing thousands of threads to exist but not screwing other users. As I said.. the fairness aspect we have is a prototype and I hoped it would be replaced by something more sophisticated. It hasn't happenned. > > Or put another way, absent such limits, if I can keep 1000 threads busy > for the entire duration of your program, ipso facto I have more work to > do than you do. no, I might have the same amount of work to do too, but I only get 1 in 1001 slots to do it in.. > > I think what you are really saying is that you want an rlimit that allows > WFQ by uid/gid/login classes. It isn't necessary for such a thing to run > at the same frequency as the scheduler generally. correct. Though WFQ is not nearly the only game in town. > > > Paul