Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2008 13:39:42 -1000 (HST)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Ceri Davies <ceri@submonkey.net>
Cc:        Daniel Eischen <deischen@FreeBSD.org>, arch@FreeBSD.org, Robert Watson <rwatson@FreeBSD.org>, David Xu <davidxu@FreeBSD.org>, Andrew Gallatin <gallatin@cs.duke.edu>
Subject:   Re: getaffinity/setaffinity and cpu sets.
Message-ID:  <20080221133804.T920@desktop>
In-Reply-To: <20080221223749.GJ22033@submonkey.net>
References:  <Pine.GSO.4.64.0801122240510.15683@sea.ntplx.net> <20080112194521.I957@desktop> <20080219234101.D920@desktop> <20080220101348.D44565@fledge.watson.org> <20080220005030.Y920@desktop> <20080220105333.G44565@fledge.watson.org> <47BCEFDB.5040207@freebsd.org> <20080220175532.Q920@desktop> <20080220213253.A920@desktop> <20080221092011.J52922@fledge.watson.org> <20080221223749.GJ22033@submonkey.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Thu, 21 Feb 2008, Ceri Davies wrote:

> On Thu, Feb 21, 2008 at 09:27:41AM +0000, Robert Watson wrote:
>
>> - You don't mention what happens if a process's cpu set changes to preclude a
>>   CPU the process has a thread with affinity for.  Online, you suggested
>>   SIGKILL, and I thought maybe a new SIGCPUGONE with a default SIGKILL action
>>   might be a friendlier model.  We should see what Solaris and others do here
>>   though.  I like the idea that the affinity is a guarantee in userspace
>>   because it means that you can rely on it; I'm OK with the idea that your
>>   thread always runs on the CPUs you have affinity for unless in the
>>   SIGCPUGONE handler :-).
>
> If a processor set disappears from under a process on Solaris, the
> process gets moved to the "default" set (or, in other words, they aren't
> in a set any more).

Yes, that's ok, but what if the process has requested a specific cpu that 
it's now no longer allowed to access?  The sets are seperate from the 
thread's specific requested binding.  If the thread binds to a specific 
processor within the set and the set disappears what should we do?  What 
if that process was relying on the binding to access cpu specific features 
such as tsc?  Allowing it to migrate could then break the code.

Thanks,
Jeff

>
> Ceri
> -- 
> That must be wonderful!  I don't understand it at all.
>                                                  -- Moliere
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080221133804.T920>