[lkml]   [2008]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subjectsched_mc_power_savings broken with CGROUPS+CPUSETS

    sched_mc_power_savings seems to be broken with CGROUPS+CPUSETS.
    When CONFIG_CPUSETS=y the attached BUG_ON() is being hit.

    I added a BUG_ON to check if SD_POWERSAVINGS_BALANCE is set at
    SD_LV_CPU whenever sched_mc_power_savings is set.

    This BUG is hit when config CONFIG_CPUSETS (depends on CONFIG_CGROUPS)
    is just compiled in while this is never hit when they are compiled
    out. The fact that SD_POWERSAVINGS_BALANCE being cleared even when
    sched_mc_power_savings = 1 completely breaks the
    sched_mc_power_savings heuristics.

    To recreate the problem,
    Have sched_mc power savings enabled CONFIG_SCHED_MC=y
    Add this BUG_ON()

    echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

    Try these these on a multi core x86 box.

    sched_mc_power_savings seems to be broken from 2.6.26-rc1, but
    I do not have a confirmation that the root cause is same in all
    successive versions. sched_mc_power_savings works perfect in

    Please help me root cause the issue. Please point me to changes that
    may potential cause this bug.


    Signed-off-by: Vaidyanathan Srinivasan <>

    Index: linux-2.6.27-rc5/kernel/sched.c
    --- linux-2.6.27-rc5.orig/kernel/sched.c 2008-08-29 17:48:56.000000000 +0000
    +++ linux-2.6.27-rc5/kernel/sched.c 2008-08-29 18:16:09.000000000 +0000
    @@ -3375,6 +3375,8 @@

    #if defined(CONFIG_SCHED_MC) || defined(CONFIG_SCHED_SMT)
    + BUG_ON(sched_mc_power_savings && sd->level == SD_LV_CPU &&
    + !(sd->flags & SD_POWERSAVINGS_BALANCE));
    if (idle == CPU_NOT_IDLE || !(sd->flags & SD_POWERSAVINGS_BALANCE))
    goto ret;

     \ /
      Last update: 2008-08-29 15:23    [W:0.022 / U:1.740 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site