Procstate patches for RedHat's 2.4.20 (+patches) kernel -------------------------------------------------------- This is not a port of pset to newer kernels. It is a new system call pair for Linux which makes some of the pset functionality possible. int sched_getprocstate(int cpu, int *state); int sched_setprocstate(int cpu, int state); These calls allow you to handle the state of a processor. States are currently defined as: PROC_ENABLED can run any task PROC_RESTRICTED can only run tasks that have their affinity (see sched_setaffinity) set to that CPU In this directory you will find the kernel patch against Red Hat kernel 2.4.20-8. I think it all works. It is significantly reduced in size and complexity from the Red Hat 8.0 release due to a major semantic change. In the RH8 version (and earlier RH9 versions), a task which was not eligible on ANY processor would be blocked until a CPU became available. This was VERY fiddly, and had a major problem - a task might be holding a semaphore when it became unrunnable. Livelocks ensued. So after discussion with several Linux kernel luminaries, and folks at Veraxx (who funded this), we changed the unrunnable semantics. A task which becomes unrunnable will have it's affinity set to -1 (any CPU may run the task) and will be sent a SIGPWR. The default behavior for a process receiving SIGPWR is to die.