lkml.org 
[lkml]   [2012]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 15/69] sched: Fix the relax_domain_level boot parameter
    3.2-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Dimitri Sivanich <sivanich@sgi.com>

    commit a841f8cef4bb124f0f5563314d0beaf2e1249d72 upstream.

    It does not get processed because sched_domain_level_max is 0 at the
    time that setup_relax_domain_level() is run.

    Simply accept the value as it is, as we don't know the value of
    sched_domain_level_max until sched domain construction is completed.

    Fix sched_relax_domain_level in cpuset. The build_sched_domain() routine calls
    the set_domain_attribute() routine prior to setting the sd->level, however,
    the set_domain_attribute() routine relies on the sd->level to decide whether
    idle load balancing will be off/on.

    Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20120605184436.GA15668@sgi.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.2: adjust the filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    kernel/sched/core.c | 9 +++------
    1 file changed, 3 insertions(+), 6 deletions(-)

    --- a/kernel/sched.c
    +++ b/kernel/sched.c
    @@ -7429,11 +7429,8 @@

    static int __init setup_relax_domain_level(char *str)
    {
    - unsigned long val;
    -
    - val = simple_strtoul(str, NULL, 0);
    - if (val < sched_domain_level_max)
    - default_relax_domain_level = val;
    + if (kstrtoint(str, 0, &default_relax_domain_level))
    + pr_warn("Unable to set relax_domain_level\n");

    return 1;
    }
    @@ -7636,7 +7633,6 @@
    if (!sd)
    return child;

    - set_domain_attribute(sd, attr);
    cpumask_and(sched_domain_span(sd), cpu_map, tl->mask(cpu));
    if (child) {
    sd->level = child->level + 1;
    @@ -7644,6 +7640,7 @@
    child->parent = sd;
    }
    sd->child = child;
    + set_domain_attribute(sd, attr);

    return sd;
    }



    \
     
     \ /
      Last update: 2012-06-17 21:01    [W:2.350 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site