From: Con Kolivas <kernel@kolivas.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
"Martin J. Bligh" <mbligh@mbligh.org>,
Andrew Morton <akpm@osdl.org>,
Christoph Lameter <clameter@engr.sgi.com>,
Nick Piggin <piggin@cyberone.com.au>
Subject: Re: 2.6.12-rc6-mm1
Date: Sat, 11 Jun 2005 00:19:10 +1000 [thread overview]
Message-ID: <200506110019.13204.kernel@kolivas.org> (raw)
In-Reply-To: <200506102203.15909.kernel@kolivas.org>
[-- Attachment #1.1: Type: text/plain, Size: 2194 bytes --]
On Fri, 10 Jun 2005 22:03, Con Kolivas wrote:
> On Fri, 10 Jun 2005 17:02, Ingo Molnar wrote:
> > * Martin J. Bligh <mbligh@mbligh.org> wrote:
> > > > I'm assuming it was the CPU scheduler patches. There are 36 of them
> > > > ;)
> > So the
> > candidates for the regression are:
> >
> > sched-implement-nice-support-across-physical-cpus-on-smp.patch
> > sched-change_prio_bias_only_if_queued.patch
> > sched-account_rt_tasks_in_prio_bias.patch
> > consolidate-preempt-options-into-kernel-kconfigpreempt.patch
> > enable-preempt_bkl-on-preemptsmp-too.patch
> > sched-tweak-idle-thread-setup-semantics.patch
> > sched-voluntary-kernel-preemption.patch
> > sched-smp-nice-bias-busy-queues-on-idle-rebalance.patch
> > sched-task_noninteractive.patch
> > sched-run-sched_normal-tasks-with-real-time-tasks-on-smt-siblings.patch
> These tend to run together so just try adding my four patches together. In
> retrospect I guess they're likely candidates because they also change the
> _ratio_ of balance which they should not so they are buggy as a group
> currently. Easy enough to fix but it will make it easy to pinpoint the
> problem if they're responsible.
>
> sched-implement-nice-support-across-physical-cpus-on-smp.patch
> sched-change_prio_bias_only_if_queued.patch
> sched-account_rt_tasks_in_prio_bias.patch
> sched-smp-nice-bias-busy-queues-on-idle-rebalance.patch
By the way it has already been decided to remove these patches from -mm
pending the completion of current scheduler work. If they turn out to be
responsible for this regression I apologise profusely :-|.
It is clearer to me now that I have made a mistake with the priority biasing,
and the following patch corrects it to the planned behaviour. This is
academic at this stage as we won't be looking at this particular feature
again in earnest until the other 32 scheduler patches (and any followups) go
upstream.
It's already known that schedstats data will be off without further code to
understand smp nice as well (thanks Nick for pointing out the data)... more
academic stuff but obviously something to consider when/if we get there.
Cheers,
Con
[-- Attachment #1.2: sched-correct_smp_nice_bias.patch --]
[-- Type: text/x-diff, Size: 1621 bytes --]
The priority biasing was off by mutliplying the total load by the total
priority bias and this ruins the ratio of loads between runqueues. This
patch should correct the ratios of loads between runqueues to be proportional
to overall load.
Signed-off-by: Con Kolivas <kernel@kolivas.org>
Index: linux-2.6.12-rc6-mm1/kernel/sched.c
===================================================================
--- linux-2.6.12-rc6-mm1.orig/kernel/sched.c 2005-06-10 23:56:56.000000000 +1000
+++ linux-2.6.12-rc6-mm1/kernel/sched.c 2005-06-10 23:59:57.000000000 +1000
@@ -978,7 +978,7 @@ static inline unsigned long __source_loa
else
source_load = min(cpu_load, load_now);
- if (idle == NOT_IDLE || rq->nr_running > 1)
+ if (idle == NOT_IDLE || rq->nr_running > 1) {
/*
* If we are busy rebalancing the load is biased by
* priority to create 'nice' support across cpus. When
@@ -987,7 +987,10 @@ static inline unsigned long __source_loa
* prevent idle rebalance from trying to pull tasks from a
* queue with only one running task.
*/
- source_load *= rq->prio_bias;
+ unsigned long prio_bias = rq->prio_bias / rq->nr_running;
+
+ source_load *= prio_bias;
+ }
return source_load;
}
@@ -1011,8 +1014,11 @@ static inline unsigned long __target_loa
else
target_load = max(cpu_load, load_now);
- if (idle == NOT_IDLE || rq->nr_running > 1)
- target_load *= rq->prio_bias;
+ if (idle == NOT_IDLE || rq->nr_running > 1) {
+ unsigned long prio_bias = rq->prio_bias / rq->nr_running;
+
+ target_load *= prio_bias;
+ }
return target_load;
}
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2005-06-10 14:20 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-07 23:50 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-07 23:56 ` 2.6.12-rc6-mm1 Andrew Morton
2005-06-08 0:02 ` 2.6.12-rc6-mm1 Christoph Lameter
2005-06-08 0:08 ` 2.6.12-rc6-mm1 Andrew Morton
2005-06-08 3:17 ` 2.6.12-rc6-mm1 Nick Piggin
2005-06-08 3:33 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-08 3:50 ` 2.6.12-rc6-mm1 Nick Piggin
2005-06-08 14:15 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-09 23:56 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-10 7:02 ` 2.6.12-rc6-mm1 Ingo Molnar
2005-06-10 12:03 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-10 14:19 ` Con Kolivas [this message]
2005-06-10 23:14 ` 2.6.12-rc6-mm1 J.A. Magallon
2005-06-10 23:59 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-11 0:18 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-11 0:32 ` 2.6.12-rc6-mm1 J.A. Magallon
2005-06-11 0:48 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-11 0:52 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-10 23:50 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-11 4:14 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-11 5:22 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-11 5:56 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-11 20:13 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-11 22:20 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-11 23:27 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-11 23:47 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-12 0:23 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-12 5:19 ` 2.6.12-rc6-mm1 Con Kolivas
2005-06-09 1:58 ` 2.6.12-rc6-mm1 Lee Revell
2005-06-08 0:02 ` 2.6.12-rc6-mm1 Martin J. Bligh
-- strict thread matches above, loose matches on Subject: below --
2005-06-07 11:29 2.6.12-rc6-mm1 Andrew Morton
2005-06-07 14:24 ` 2.6.12-rc6-mm1 Wolfgang Wander
2005-06-07 14:49 ` 2.6.12-rc6-mm1 Wolfgang Wander
2005-06-07 14:48 ` 2.6.12-rc6-mm1 Brice Goglin
2005-06-07 23:15 ` 2.6.12-rc6-mm1 Francois Romieu
2005-06-08 1:59 ` 2.6.12-rc6-mm1 Søren Lott
2005-06-08 5:53 ` 2.6.12-rc6-mm1 Jean Delvare
2005-06-08 7:08 ` 2.6.12-rc6-mm1 Søren Lott
2005-06-08 14:22 ` 2.6.12-rc6-mm1 Andy Whitcroft
2005-06-08 20:01 ` 2.6.12-rc6-mm1 Andrew Morton
2005-06-08 23:14 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-08 23:22 ` 2.6.12-rc6-mm1 Andrew Morton
2005-06-08 23:34 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-09 7:17 ` 2.6.12-rc6-mm1 Kirill Korotaev
2005-06-09 13:38 ` 2.6.12-rc6-mm1 Martin J. Bligh
2005-06-10 12:12 ` 2.6.12-rc6-mm1 Kirill Korotaev
2005-06-09 4:27 ` 2.6.12-rc6-mm1 Andrey Panin
2005-06-09 13:12 ` 2.6.12-rc6-mm1 Andy Whitcroft
2005-06-11 11:51 ` 2.6.12-rc6-mm1 Benoit Boissinot
2005-06-18 22:39 ` 2.6.12-rc6-mm1 Richard Purdie
2005-06-18 22:44 ` 2.6.12-rc6-mm1 Andrew Morton
2005-06-18 22:57 ` 2.6.12-rc6-mm1 Richard Purdie
2005-06-18 23:11 ` 2.6.12-rc6-mm1 Richard Purdie
2005-06-18 23:18 ` 2.6.12-rc6-mm1 Russell King
2005-06-19 1:20 ` 2.6.12-rc6-mm1 Richard Purdie
2005-06-19 9:02 ` 2.6.12-rc6-mm1 Russell King
2005-06-19 9:11 ` 2.6.12-rc6-mm1 Russell King
2005-06-19 17:12 ` 2.6.12-rc6-mm1 Richard Purdie
2005-06-19 17:39 ` 2.6.12-rc6-mm1 Russell King
2005-06-19 18:25 ` 2.6.12-rc6-mm1 Richard Purdie
2005-06-19 18:56 ` 2.6.12-rc6-mm1 Russell King
2005-06-21 13:20 ` 2.6.12-rc6-mm1 Dominik Karall
2005-06-24 21:27 ` 2.6.12-rc6-mm1 Alexey Dobriyan
2005-07-29 4:54 ` 2.6.12-rc6-mm1 Andrew Morton
2005-07-29 13:39 ` 2.6.12-rc6-mm1 Dominik Karall
2005-07-29 18:22 ` 2.6.12-rc6-mm1 Andrew Morton
2005-07-29 21:19 ` 2.6.12-rc6-mm1 Dominik Karall
2005-07-29 21:27 ` 2.6.12-rc6-mm1 Andrew Morton
2005-07-29 21:37 ` 2.6.12-rc6-mm1 Dominik Karall
2005-08-04 19:44 ` 2.6.12-rc6-mm1 Andrew Morton
2005-08-04 22:28 ` 2.6.12-rc6-mm1 Andrew Morton
2005-08-04 22:44 ` 2.6.12-rc6-mm1 Dominik Karall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200506110019.13204.kernel@kolivas.org \
--to=kernel@kolivas.org \
--cc=akpm@osdl.org \
--cc=clameter@engr.sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@mbligh.org \
--cc=mingo@elte.hu \
--cc=piggin@cyberone.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox