getaffinity/setaffinity and cpu sets.

Jeff Roberson jroberson at chesapeake.net
Thu Feb 21 21:57:14 UTC 2008


On Thu, 21 Feb 2008, David Schultz wrote:

> I have no specific comments, but I wanted to point out that the
> Solaris kernel team put a lot of thought into coming up with a
> flexible processor binding API for Solaris 10 that meshes well
> with jails (a.k.a. zones in Solaris). It might be worthwhile to
> investigate what good ideas they might have had, and to decide if
> compatibility is worthwhile:

Well interestingly enough I came up with an almost identical thing but 
with fewer features.  If someone wanted to add the missing features I'm 
fine with that.  I don't know if we want to or are free to copy the api 
exactly.

>
>    http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/sys/pset.h
>
> There are manpages for this stuff somewhere. pset_create and
> pset_destroy obviously create and delete processor set definitions.
> pset_bind binds a particular process / thread / session / jail
> to a processor set, similar to your CPU_WHICH_* flags, I think,
> but with more options.
>

I didn't see the header but I read some web articles about it.  The only 
real discrepancy is whether you explicitly destroy them or they disappear 
when the last processor leaves the set.  I could be convinced to do 
either, but so far I'm leaning towards automatic destruction.

Hopefully someone who is involved with jails will work with me to 
integrate the two.  I intend only to implement the infrastructure required 
to create and modify sets.  Someone who is jail savvy will need to apply 
the set and the appropriate security restrictions.

Thanks,
Jeff


More information about the freebsd-arch mailing list