Ok, here is hopefully the last iteration of the dynamic sched domain patches before I can send it off to Andrew. I would have posted it earlier, except I got sidetracked with all the hotplug+preempt issues. cpusets+hotplug+preempt requires more testing and I'll post those patches sometime later in the week patch1 - sched.c+sched.h changes patch2 - cpuset.c+Documentation changes patch3 - ia64 changes All patches are against 2.6.12-rc4-mm1 and have been tested (except for the ia64 changes) linux-2.6.12-rc4-mm1-1/include/linux/sched.h | 2 linux-2.6.12-rc4-mm1-1/kernel/sched.c | 131 +++++++++++++++-------- linux-2.6.12-rc4-mm1-2/Documentation/cpusets.txt | 16 ++ linux-2.6.12-rc4-mm1-2/kernel/cpuset.c | 89 ++++++++++++--- linux-2.6.12-rc4-mm1-3/arch/ia64/kernel/domain.c | 77 ++++++++----- 5 files changed, 225 insertions(+), 90 deletions(-) o Patch1 adds the new API partition_sched_domains. I have incorporated all of the feedback from before. o I didnt think it necessary to add another semaphore to protect the sched domain changes as suggested by Nick. As it was clear last week, hotplug+cpusets causes enough issues with nested sems, so I didnt want to add yet another in the mix o I have removed the __devinit qualifier from some functions which will now get called anytime changes are made to exclusive cpusets instead of only during boot o arch_init_sched_domains/arch_destroy_sched_domains now take a pointer to a const cpumask_t * type. -Dinakar