On Sun, Feb 24, 2008 at 05:38:37PM -1000, Jeff Roberson wrote: > Hello, > > I have implemented a new api similar to processors sets on solaris. This > allows you to assign processes to sets of cpus and dynamically change those > sets. This is useful for provisioning purposes to add and remove cpu > resources for a particular process or group of processes. This new > facility also supports binding secific threads to specific cpus which some > applications may want to do. At some point in the future this will be > integrated with jail so you can restrict the cpus any jail is allowed to > use. > > This api should not be considered final and the 'cpuset' tool is quite > rough. This also only works with ULE and is unfortunately intertwined with > a big ULE patch I've been working on. The set management code is generic > 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
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:28 UTC