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    [W:0.026 / U:90.060 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site