[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1193826639.27652.113.camel@twins>
Date: Wed, 31 Oct 2007 11:30:39 +0100
From: Peter Zijlstra <a.p.zijlstra@...llo.nl>
To: "Zhang, Yanmin" <yanmin_zhang@...ux.intel.com>
Cc: Ingo Molnar <mingo@...e.hu>, LKML <linux-kernel@...r.kernel.org>
Subject: Re: aim7 -30% regression in 2.6.24-rc1
On Wed, 2007-10-31 at 17:57 +0800, Zhang, Yanmin wrote:
> On Tue, 2007-10-30 at 16:36 +0800, Zhang, Yanmin wrote:
> > On Tue, 2007-10-30 at 08:26 +0100, Ingo Molnar wrote:
> > > * Zhang, Yanmin <yanmin_zhang@...ux.intel.com> wrote:
> > >
> > > > sub-bisecting captured patch
> > > > 38ad464d410dadceda1563f36bdb0be7fe4c8938(sched: uniform tunings)
> > > > caused 20% regression of aim7.
> > > >
> > > > The last 10% should be also related to sched parameters, such like
> > > > sysctl_sched_min_granularity.
> > >
> > > ah, interesting. Since you have CONFIG_SCHED_DEBUG enabled, could you
> > > please try to figure out what the best value for
> > > /proc/sys/kernel_sched_latency, /proc/sys/kernel_sched_nr_latency and
> > > /proc/sys/kernel_sched_min_granularity is?
> > >
> > > there's a tuning constraint for kernel_sched_nr_latency:
> > >
> > > - kernel_sched_nr_latency should always be set to
> > > kernel_sched_latency/kernel_sched_min_granularity. (it's not a free
> > > tunable)
> > >
> > > i suspect a good approach would be to double the value of
> > > kernel_sched_latency and kernel_sched_nr_latency in each tuning
> > > iteration, while keeping kernel_sched_min_granularity unchanged. That
> > > will excercise the tuning values of the 2.6.23 kernel as well.
> > I followed your idea to test 2.6.24-rc1. The improvement is slow.
> > When sched_nr_latency=2560 and sched_latency_ns=640000000, the performance
> > is still about 15% less than 2.6.23.
>
> I got the aim7 30% regression on my new upgraded stoakley machine. I found
> this mahcine is slower than the old one. Maybe BIOS has issues, or memeory(Might not
> be dual-channel?) is slow. So I retested it on the old machine and found on the old
> stoakley machine, the regression is about 6%, quite similiar to the regression on tigerton
> machine.
>
> By sched_nr_latency=640 and sched_latency_ns=640000000 on the old stoakley machine,
> the regression becomes about 2%. Other latency has more regression.
>
> On my tulsa machine, by sched_nr_latency=640 and sched_latency_ns=640000000,
> the regression becomes less than 1% (The original regression is about 20%).
>
> When I ran a bad script to change the values of sched_nr_latency and sched_latency_ns,
> I hit OOPS on my tulsa machine. Below is the log. It looks like sched_nr_latency becomes
> 0.
Oops, yeah I think I overlooked that case :-/
I think limiting the sysctl parameters make most sense, as a 0 value
really doesn't.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@...llo.nl>
---
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 3b4efbe..0f34c91 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -94,6 +94,7 @@ static int two = 2;
static int zero;
static int one_hundred = 100;
+static int int_max = INT_MAX;
/* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
static int maxolduid = 65535;
@@ -239,7 +240,10 @@ static struct ctl_table kern_table[] = {
.data = &sysctl_sched_nr_latency,
.maxlen = sizeof(unsigned int),
.mode = 0644,
- .proc_handler = &proc_dointvec,
+ .proc_handler = &proc_dointvec_minmax,
+ .strategy = &sysctl_intvec,
+ .extra1 = &one,
+ .extra2 = &int_max,
},
{
.ctl_name = CTL_UNNUMBERED,
Download attachment "signature.asc" of type "application/pgp-signature" (190 bytes)
Powered by blists - more mailing lists