From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>,
Dhaval Giani <dhaval@linux.vnet.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
Aneesh Kumar KV <aneesh.kumar@linux.vnet.ibm.com>,
Balbir Singh <balbir@in.ibm.com>,
Chris Friesen <cfriesen@nortel.com>
Subject: Re: VolanoMark regression with 2.6.27-rc1
Date: Wed, 20 Aug 2008 15:32:17 +0200 [thread overview]
Message-ID: <1219239137.8651.52.camel@twins> (raw)
In-Reply-To: <20080820105141.GA18226@elte.hu>
On Wed, 2008-08-20 at 12:51 +0200, Ingo Molnar wrote:
> * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
>
> > And I must admit to having overlooked the effect on wake_affine..
> >
> > Chris, could you see the effect of this on smp group fairness?
Just realized my brainfart..
---
Subject: sched: load-balance bias fixes
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Wed Aug 20 15:28:51 CEST 2008
Yanmin spotted a regression with my patch that introduces LB_BIAS:
commit 93b75217df39e6d75889cc6f8050343286aff4a5
Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri Jun 27 13:41:33 2008 +0200
And I just spotted the brainfart - I should have replaced min/max with avg
instead of removing it completely.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
include/linux/kernel.h | 6 ++++++
kernel/sched.c | 10 ++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
Index: linux-2.6/include/linux/kernel.h
===================================================================
--- linux-2.6.orig/include/linux/kernel.h
+++ linux-2.6/include/linux/kernel.h
@@ -367,6 +367,12 @@ static inline char *pack_hex_byte(char *
(void) (&_max1 == &_max2); \
_max1 > _max2 ? _max1 : _max2; })
+#define avg(x, y) ({ \
+ typeof(x) _avg1 = ((x)+1)/2; \
+ typeof(x) _avg2 = ((y)+1)/2; \
+ (void) (&_avg1 == &_avg2); \
+ _avg1 + _avg2; })
+
/**
* clamp - return a value clamped to a given range with strict typechecking
* @val: current value
Index: linux-2.6/kernel/sched.c
===================================================================
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -2008,9 +2008,12 @@ static unsigned long source_load(int cpu
struct rq *rq = cpu_rq(cpu);
unsigned long total = weighted_cpuload(cpu);
- if (type == 0 || !sched_feat(LB_BIAS))
+ if (type == 0)
return total;
+ if (!sched_feat(LB_BIAS))
+ return avg(rq->cpu_load[type-1], total);
+
return min(rq->cpu_load[type-1], total);
}
@@ -2023,9 +2026,12 @@ static unsigned long target_load(int cpu
struct rq *rq = cpu_rq(cpu);
unsigned long total = weighted_cpuload(cpu);
- if (type == 0 || !sched_feat(LB_BIAS))
+ if (type == 0)
return total;
+ if (!sched_feat(LB_BIAS))
+ return avg(rq->cpu_load[type-1], total);
+
return max(rq->cpu_load[type-1], total);
}
next prev parent reply other threads:[~2008-08-20 13:32 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-31 3:20 VolanoMark regression with 2.6.27-rc1 Zhang, Yanmin
2008-07-31 7:31 ` Zhang, Yanmin
2008-07-31 7:39 ` Peter Zijlstra
2008-07-31 7:49 ` Zhang, Yanmin
2008-08-01 0:39 ` Zhang, Yanmin
2008-08-01 2:35 ` Miao Xie
2008-08-01 3:08 ` Zhang, Yanmin
2008-08-01 5:14 ` Dhaval Giani
2008-08-04 5:04 ` Zhang, Yanmin
2008-08-04 5:22 ` Dhaval Giani
2008-08-04 5:37 ` Zhang, Yanmin
2008-08-04 5:53 ` Dhaval Giani
2008-08-04 6:26 ` Peter Zijlstra
2008-08-04 6:26 ` Peter Zijlstra
2008-08-04 7:05 ` Dhaval Giani
2008-08-04 7:12 ` Peter Zijlstra
2030-08-06 3:26 ` Zhang, Yanmin
2008-08-08 7:30 ` Peter Zijlstra
[not found] ` <20080811185008.GA29291@linux.vnet.ibm.com>
[not found] ` <1912726331.25608.235.camel@ymzhang>
[not found] ` <20080817115035.GA32223@linux.vnet.ibm.com>
[not found] ` <20080818052155.GA5063@linux.vnet.ibm.com>
2008-08-20 7:24 ` Zhang, Yanmin
2008-08-20 7:41 ` Peter Zijlstra
2008-08-20 10:51 ` Ingo Molnar
2008-08-20 13:32 ` Peter Zijlstra [this message]
2008-08-20 13:47 ` Ingo Molnar
2008-08-21 2:25 ` Zhang, Yanmin
2008-08-21 6:16 ` Ingo Molnar
2008-08-21 6:48 ` Zhang, Yanmin
2008-08-29 3:35 ` Zhang, Yanmin
2008-08-29 3:38 ` Zhang, Yanmin
2008-08-20 14:32 ` adobriyan
2008-08-20 14:33 ` Peter Zijlstra
2008-08-20 15:10 ` Nick Piggin
2008-08-20 15:15 ` Peter Zijlstra
2008-08-20 16:29 ` Ray Lee
2008-08-20 16:51 ` Peter Zijlstra
2008-08-20 17:21 ` Peter Zijlstra
2008-08-20 17:55 ` Nick Piggin
2008-08-20 18:15 ` Ray Lee
2008-08-20 20:30 ` Peter Zijlstra
2008-08-20 20:56 ` Peter Zijlstra
2008-08-21 6:11 ` Nick Piggin
2008-08-21 8:17 ` Peter Zijlstra
2008-08-21 6:15 ` Ingo Molnar
2008-08-20 20:58 ` Ray Lee
2008-08-20 21:04 ` Peter Zijlstra
2008-08-21 6:12 ` Ingo Molnar
2030-08-13 8:50 ` Zhang, Yanmin
2008-08-04 6:54 ` Peter Zijlstra
2008-08-15 15:37 ` Ingo Molnar
2008-08-01 12:25 ` Hugh Dickins
2008-08-04 0:54 ` Zhang, Yanmin
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=1219239137.8651.52.camel@twins \
--to=a.p.zijlstra@chello.nl \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=balbir@in.ibm.com \
--cc=cfriesen@nortel.com \
--cc=dhaval@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=vatsa@linux.vnet.ibm.com \
--cc=yanmin_zhang@linux.intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.