From owner-freebsd-arch@FreeBSD.ORG Tue Feb 26 15:39:06 2008 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEEF5106568C; Tue, 26 Feb 2008 15:39:06 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id 91EB013C448; Tue, 26 Feb 2008 15:39:06 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.2/8.14.2/NETPLEX) with ESMTP id m1QFcc9A028786; Tue, 26 Feb 2008 10:38:38 -0500 (EST) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.0 (mail.netplex.net [204.213.176.10]); Tue, 26 Feb 2008 10:38:38 -0500 (EST) Date: Tue, 26 Feb 2008 10:38:38 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Jeff Roberson In-Reply-To: <20080225213434.L920@desktop> Message-ID: References: <20080220175532.Q920@desktop> <20080220213253.A920@desktop> <20080221092011.J52922@fledge.watson.org> <20080222121253.N920@desktop> <20080222231245.GA28788@lor.one-eyed-alien.net> <20080222134923.M920@desktop> <20080223194047.GB38485@lor.one-eyed-alien.net> <20080223111659.K920@desktop> <20080223213507.GD39699@lor.one-eyed-alien.net> <20080224001902.J920@desktop> <20080225231747.GT99258@elvis.mu.org> <20080225143222.B920@desktop> <20080225160433.P920@desktop> <20080225194320.V920@desktop> <20080225213434.L920@desktop> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Brooks Davis , Andrew Gallatin , Alfred Perlstein , arch@freebsd.org, Robert Watson , David Xu Subject: Re: cpuset and affinity implementation X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2008 15:39:07 -0000 On Mon, 25 Feb 2008, Jeff Roberson wrote: > Binding a processor set to the process simply sets the per-thread binding of > each thread in the process. There is otherwise no specific process binding. > We could keep a pointer to the last specifically bound set in the process if > we wanted, but what would it be used for other than querying the id of the > process? What if each thread was seperately specifically bound to a > different set? What set should be used on fork? The set of the process or > the thread that called fork? What about when creating a new thread? The set used on fork should be the set of the calling thread, same concept as signal masks I would think. Same thing when creating a new thread. I guess I'd check how Linux and Solaris do it, see if they are consistent. I can see how you might _not_ want to inherit bindings in a created thread. For a process with real-time threads, the application might start with superuser privileges, create some threads with real-time priority and set their bindings, then setuid() to remove superuser privileges. Is a privilege check made in a newly created thread when applying inherited bindings? > See above discussion. I'm not sure what you mean by 'default' cpuset here. I imagine the 'default' cpuset as the system's default cpuset, in lieu of any administratively created cpusets and bindings for the process (inherited or explicit). -- DE