Re: [PATCH] sched: smpnice work around for active_load_balance()
- From: "Siddha, Suresh B" <suresh.b.siddha@xxxxxxxxx>
- Date: Tue, 28 Mar 2006 11:25:21 -0800
On Tue, Mar 28, 2006 at 05:00:50PM +1100, Peter Williams wrote:
Problem:
It is undesirable for HT/MC packages to have more than one of their CPUs
busy if there are other packages that have all of their CPUs idle. This
We need to balance even if the other packages are not idle.. For example,
consider a 4-core DP system, if we have 6 runnable(assume same priority)
processes, we want to schedule 3 of them in each package..
Todays active load balance implementation is very simple and generic. And
hence it works smoothly with dual and multi-core.. Please read my OLS
2005 paper which talks about different scheduling scenarios and also how
we were planning to implement Power savings policy incase of multi-core..
I had a prototype patch for doing this, which I held it up before going
on vacation, as it needed some rework with your smpnice patch in place..
I will post a patch ontop of current mainline for your reference.
+ } else if (!busiest_has_loaded_cpus && avg_load < max_load) {
I haven't fully digested the result of this patch but should this be
avg_load < max_load or avg_load > max_load ?
Either way, I can show scheduling scenarios which will fail...
- if (rqi->raw_weighted_load > max_load && rqi->nr_running > 1) {
+ if (rqi->nr_running > 1) {
+ if (rqi->raw_weighted_load > max_load || !busiest_is_loaded) {
+ max_load = rqi->raw_weighted_load;
+ busiest = rqi;
+ busiest_is_loaded = 1;
+ }
+ } else if (!busiest_is_loaded && rqi->raw_weighted_load > max_load) {
Please note the point that same scheduling logic has to work for all
the different levels of scheduler domains... I think these checks complicates
the decisions as we go up in the scheduling hirerachy.. Please go through
the HT/MC/MP/Numa combinations and with same/different priority processes for
different scenarios..
Even with no HT and MC, this patch has still has issues in the presence
of different priority tasks... consider a simple DP system and run two
instances of high priority tasks(simple infinite loop) and two normal priority
tasks. With "top" I observed that these normal priority tasks keep on jumping
from one processor to another... Ideally with smpnice, we would assume that
each processor should have two tasks (one high priority and another one
with normal priority) ..
thanks,
suresh
-
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/
- Follow-Ups:
- Re: [PATCH] sched: smpnice work around for active_load_balance()
- From: Peter Williams
- Re: [PATCH] sched: smpnice work around for active_load_balance()
- References:
- [PATCH] sched: smpnice work around for active_load_balance()
- From: Peter Williams
- [PATCH] sched: smpnice work around for active_load_balance()
- Prev by Date: Re: [RFC][PATCH 0/2] KABI example conversion and cleanup
- Next by Date: Re: [PATCH] PoC "make xconfig" Search Facility
- Previous by thread: [PATCH] sched: smpnice work around for active_load_balance()
- Next by thread: Re: [PATCH] sched: smpnice work around for active_load_balance()
- Index(es):
Relevant Pages
- Re: NPTL mutex and the scheduling priority
... I found that it seems NPTL's mutex does not follow the scheduling ...
I expect that a thread with highest priority got the lock ... The patch you refer
to is at ... (Linux-Kernel) - Re: Analysis of sched_mc_power_savings
... completely idle packages to go to the available deepest P and C states. ...
the cpu tickless idle time atleast on few CPU in an SMP machine. ... But the problem is
we will not be able get longer idle time and goto ... But atleast we should not see any
scheduling ... (Linux-Kernel) - Re: Wiseman and McGhie are Ranting Again
... of which is the clock tick that expires a time slice interval. ... > Then
we can start playing around with Thread Priority. ... I think you are comparing pre-emptive
and co-operative scheduling. ... then falls quiet and calls its Idle Loop. ...
(microsoft.public.mac.office.word) - Re: Rate Monotonic Scheduling (RMS) vs. OS Scheduling
... one because almost everyone uses static priority for real time. ... RMS scheduling
requires that the cpu only be loaded to some ... The problem with EDT is that it requires dynamic
scheduling as ... The problem of EDF is also that you need to know who is the earliest
... (comp.arch) - Re: Rate Monotonic Scheduling (RMS) vs. OS Scheduling
... one because almost everyone uses static priority for real time. ... RMS scheduling
requires that the cpu only be loaded to some maximum, ... The problem of EDF is also that
you need to know who is the earliest ... (comp.arch)