why are scheduling domains used in multiprocessor systems

Bond jamesbond.2k.g at gmail.com
Wed Jan 9 03:03:11 EST 2013


Hi,
please see this question
http://stackoverflow.com/questions/14229793/what-does-struct-sched-domain-stands-for-in-include-linux-sched-h-scheduling-do

I checked following
http://lwn.net/Articles/169277/ and following
http://www.kernel.org/doc/Documentation/scheduler/sched-domains.txt
the first line of kernel.org doc says
.............  Each CPU has a "base" scheduling domain (struct
sched_domain)..............
and second para says
" each scheduling domain spans a number of CPUs (stored in the ->span field)."
third para says
"  Each scheduling domain must have one or more CPU groups..................
The intersection of cpumasks from any two of these groups
MUST be the empty set."
then some where in doc it says
"Balancing within a sched domain occurs between groups. That is, each group
is treated as one entity." the doc in details talks about the implementation of

scheduling domains and mentions that CPUs should belong to one of the
scheduling domain in a way that
cpumasks intersection should  be an  empty set

The answer of the question that I want to know is
why is a scheduling domain actually needed?



More information about the Kernelnewbies mailing list