lkml.org 
[lkml]   [2008]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 67/83] sched: fix a bug in sched domain degenerate
    2.6.27-stable review patch.  If anyone has any objections, please let us know.

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

    From: Li Zefan <lizf@cn.fujitsu.com>

    commit f29c9b1ccb52904ee442a933cf3dee628f9f4e62 upstream.

    Impact: re-add incorrectly eliminated sched domain layers

    (1) on i386 with SCHED_SMT and SCHED_MC enabled
    # mount -t cgroup -o cpuset xxx /mnt
    # echo 0 > /mnt/cpuset.sched_load_balance
    # mkdir /mnt/0
    # echo 0 > /mnt/0/cpuset.cpus
    # dmesg
    CPU0 attaching sched-domain:
    domain 0: span 0 level CPU
    groups: 0

    (2) on i386 with SCHED_MC enabled but SCHED_SMT disabled
    # same with (1)
    # dmesg
    CPU0 attaching NULL sched-domain.

    The bug is that some sched domains may be skipped unintentionally when
    degenerating (optimizing) sched domains.

    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Cc: Gregory Haskins <ghaskins@novell.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    kernel/sched.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/kernel/sched.c
    +++ b/kernel/sched.c
    @@ -6802,15 +6802,17 @@ cpu_attach_domain(struct sched_domain *s
    struct sched_domain *tmp;

    /* Remove the sched domains which do not contribute to scheduling. */
    - for (tmp = sd; tmp; tmp = tmp->parent) {
    + for (tmp = sd; tmp; ) {
    struct sched_domain *parent = tmp->parent;
    if (!parent)
    break;
    +
    if (sd_parent_degenerate(tmp, parent)) {
    tmp->parent = parent->parent;
    if (parent->parent)
    parent->parent->child = tmp;
    - }
    + } else
    + tmp = tmp->parent;
    }

    if (sd && sd_degenerate(sd)) {


    \
     
     \ /
      Last update: 2008-12-11 20:45    [W:0.022 / U:1.420 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site