From owner-freebsd-hackers@FreeBSD.ORG Thu May 1 00:11:28 2008 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C69D1065670 for ; Thu, 1 May 2008 00:11:28 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outP.internet-mail-service.net (outp.internet-mail-service.net [216.240.47.239]) by mx1.freebsd.org (Postfix) with ESMTP id 7780C8FC12 for ; Thu, 1 May 2008 00:11:28 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.40) with ESMTP; Wed, 30 Apr 2008 22:29:24 -0700 Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id 9396E2D600D; Wed, 30 Apr 2008 17:11:27 -0700 (PDT) Message-ID: <48190AB2.4010102@elischer.org> Date: Wed, 30 Apr 2008 17:11:30 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.12 (Macintosh/20080213) MIME-Version: 1.0 To: "Murty, Ravi" References: <4818E40F.9070004@elischer.org> <4818F7F8.6020602@elischer.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: maybe_preempt_in_ksegrp X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 May 2008 00:11:28 -0000 Murty, Ravi wrote: > Sorry I wish I was part of the development effort. I am just coming on > board with FreeBSD work. > > I guess ksegrps were implemented for the purpose of PROCESS_SCOPE > threads and like you said avoiding a process from hogging the CPU. > > If every thread in the system has it's own ksegrp (SYSTEM_SCOPE) I don't > see this call (maybe_preempt_in_ksegrp) ever getting called :). which is why the default was process scope. > > Thanks > ravi > > > -----Original Message----- > From: Julian Elischer [mailto:julian@elischer.org] > Sent: Wednesday, April 30, 2008 3:52 PM > To: Murty, Ravi > Cc: freebsd-hackers@freebsd.org > Subject: Re: maybe_preempt_in_ksegrp > > Murty, Ravi wrote: >> Julian, >> >> Apologies for sticking to 6.x, I checked and looks like this function >> and several others are out in 7.x. It's just that we've been using 6.x >> for a while and continue to look at it. :) >> >> >> Coming back, I was thinking of the problem the other way around. The >> thread gets put on the ksegrp runq, but we don't know if it gets put > at >> the head of the queue. All we know is we either find a slot or not. If >> we do, great sched_add is called which will add it to a CPU runq and >> check if it can preempt some thread on the target CPU. If we can't > find >> a slot, it checks if it can steal (preempt) some other thread (of the >> same ksegrp) from a cpu. Let's consider the UP case to keep this > simple. >> One of the checks is the priority of the newly runnable thread and the >> curthread on the CPU and the fact that they are part of the same > KSEGRP. >> If both pass, I think it should say "run me" since we just established >> that I am higher priority than what's running on the CPU. >> >> Ravi >> > > > Quite possibly.. > where were you when we needed more > man-power on this :-) > > this was part of the attempt to make a 'fair' scheduler > which would not gove a person 10,000 times the cpu just because > he had 10000 threads :-) > > > It was eventually removed as being too complicated, too resource > intensive, and not solving a problem that people were seeing. > >