Date: Fri, 22 Feb 2008 15:53:00 +0000 From: Ceri Davies <ceri@submonkey.net> To: Jeff Roberson <jroberson@chesapeake.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: <20080222155300.GA72691@submonkey.net> In-Reply-To: <20080221133804.T920@desktop> References: <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> <20080221133804.T920@desktop>
next in thread | previous in thread | raw e-mail | index | archive | help
--9amGYk9869ThD9tj Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Feb 21, 2008 at 01:39:42PM -1000, Jeff Roberson wrote: >=20 > On Thu, 21 Feb 2008, Ceri Davies wrote: >=20 >> On Thu, Feb 21, 2008 at 09:27:41AM +0000, Robert Watson wrote: >>=20 >>> - You don't mention what happens if a process's cpu set changes to prec= lude 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 d= o 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 y= our >>> thread always runs on the CPUs you have affinity for unless in the >>> SIGCPUGONE handler :-). >>=20 >> 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). >=20 > Yes, that's ok, but what if the process has requested a specific cpu that= =20 > it's now no longer allowed to access? The sets are seperate from the=20 > thread's specific requested binding. If the thread binds to a specific= =20 > processor within the set and the set disappears what should we do? What = if=20 > that process was relying on the binding to access cpu specific features= =20 > such as tsc? Allowing it to migrate could then break the code. OK, I was talking about processor sets; in Solaris, binding to a set (pset_bind()) and binding to a specific processor (processor_bind()) are different operations. A processor that has LWPs bound to it specifically (with processor_bind()) may not be taken offline or marked as spare, unless the operation is forced, whereupon forcing removes the binding. Since this is an administrative choice, it's acceptable. Ceri --=20 That must be wonderful! I don't understand it at all. -- Moliere --9amGYk9869ThD9tj Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (FreeBSD) iD8DBQFHvu/cocfcwTS3JF8RAqyYAJ9ILwO5kCBIzm6+m4nzR7zGh0U50ACeP6Ba EezrE/EO0o/7cp5E2ryb918= =qdXO -----END PGP SIGNATURE----- --9amGYk9869ThD9tj--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080222155300.GA72691>