Re: Linux scheduler Questions

From: Rakib Mullick
Date: Tue Nov 01 2011 - 13:52:44 EST


On Tue, Nov 1, 2011 at 6:24 PM, Xin Tong <xerox.time.tech@xxxxxxxxx> wrote:
> 2 questions on Linux 2.6.x scheduler.
>
> 1.  in Linux 2.6, when a process is waiting for IO. it will be placed
> on the wait queue. is the wait queue per cpu or global ? I do not see
> any field for the wait queue in the runqueue structure.

Where a particular process will wait depends on which scheduling
policy it will use. For a process which has SCHED_FIFO/SCHED_RR
policy, it will be handled by sched_rt scheduler. Where processes are
kept in priority-queue structure. Look for "struct rt_rq" structure.
If it's other than rt process, then processes are kept on red-black
tree (look at "struct cfs_rq" structure).

> 2. Linux 2.6 has the notion of scheduling domain, using an example to
> explain what I am getting at here
>
> In a HT enabled CPU, the CPU has 2 cores, each core has 2 threads.
> there will be 2 levels of domain.
> 1. Domain of lev.1 ==> 2 groups, 1 physical core per group.
> 2. Domain of lev. 0 ==> 2 groups, 1 logical core per group.
> When the load on the 2 logical cores is imbalanced, Linux will migrate
> some jobs from one to another. What if there is an imbalance of
> workload on the 2 physical cores ?
>
Will also try to migrate some jobs from busiest to less busiest core.
First, load balancer will try to find which core has less load, then
will try to find which logical CPU has less load.

Thanks,
Rakib
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/