Hi, The existing cpuset code that partitioned sched domains at the back of a exclusive cpuset has one major problem. Administrators will find that tasks assigned to top level cpusets, that contain child cpusets that are exclusive, can no longer be rebalanced across the entire cpus_allowed mask. It was felt that instead of overloading the cpu_exclusive flag to also create sched domains, it would be better to have a separate flag that denotes a sched domain. That way the admins have the flexibility to create exclusive cpusets that do not necessarily define sched domains. This patch adds a new flag sched_domain. This can only be set on a cpu_exclusive cpuset. If set then, the sched domain consists of all CPUs in the current cpuset that are not part of any exclusive child cpusets that also define sched domains. However there are 2 additional extensions that may need to be looked into 1. There is still no way to find the current sched domain configuration of the system on demand from userspace. (Apart from turning SCHED_DOMAIN_DEBUG on and checking dmesg) 2. A way to specify a NULL sched domain, ie mark an exclusive cpuset that defines a sched domain as one with no load balancing. This can be accomplished by adding yet another flag that says dont load balance (say no_load_balance) Signed-off-by: Dinakar Guniguntala