Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Feb 2008 17:33:15 -0600
From:      Brooks Davis <brooks@freebsd.org>
To:        Jeff Roberson <jroberson@chesapeake.net>
Cc:        current@freebsd.org
Subject:   Re: cpuset and affinity implementation
Message-ID:  <20080225233315.GA59569@lor.one-eyed-alien.net>
In-Reply-To: <20080224173229.I920@desktop>
References:  <20080224173229.I920@desktop>

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

--r5Pyd7+fXNt84Ff3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Feb 24, 2008 at 05:38:37PM -1000, Jeff Roberson wrote:
> Hello,
>=20
> I have implemented a new api similar to processors sets on solaris.  This=
=20
> allows you to assign processes to sets of cpus and dynamically change tho=
se=20
> sets.  This is useful for provisioning purposes to add and remove cpu=20
> resources for a particular process or group of processes.  This new=20
> facility also supports binding secific threads to specific cpus which som=
e=20
> applications may want to do.  At some point in the future this will be=20
> integrated with jail so you can restrict the cpus any jail is allowed to=
=20
> use.
>=20
> This api should not be considered final and the 'cpuset' tool is quite=20
> rough.  This also only works with ULE and is unfortunately intertwined wi=
th=20
> a big ULE patch I've been working on.  The set management code is generic=
=20
> but 4BSD doesn't contain the hooks to actually constrain threads.

I took a look at the patch this morning.  The API looks like it's
capable of doing what I need, at least at a first pass.  It looks like I
should be able to implement the semantics currently employed by the Sun
Grid Engine scheduler on Irix systems.

The one thing I noticed that I found worrying was the recursion in
cpuset_(test)update().  It wasn't immediately clear to me there there
is anything to would prevent an arbitrarily deep hierarchy from being
created and blowing the kernel stack.  I'm I missing something?

-- Brooks

--r5Pyd7+fXNt84Ff3
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)

iD8DBQFHw1A6XY6L6fI4GtQRAt7RAJ9EXhkn7LZ2Lm7hKowce3NqNiv02ACg1aZf
Tauye9p9tvkOzlAnM35sk0Y=
=wuVu
-----END PGP SIGNATURE-----

--r5Pyd7+fXNt84Ff3--



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