lkml.org 
[lkml]   [2007]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: aim7 -30% regression in 2.6.24-rc1
From
Date
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@linux.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@chello.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,
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2007-10-31 11:33    [from the cache]
©2003-2011 Jasper Spaans