[lkml]   [2005]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[sched, patch] better wake-balancing, #2

    * Ingo Molnar <> wrote:

    > another approach would be the patch below, to do wakeup-balancing only
    > if the wakeup CPU or the task CPU is idle.

    there's an even simpler way: only do wakeup-balancing if this_cpu is
    idle. (tbench results are still OK, and other workloads improved.)


    do wakeup-balancing only if the wakeup-CPU is idle.

    this prevents excessive wakeup-balancing while the system is highly
    loaded, but helps spread out the workload on partly idle systems.

    Signed-off-by: Ingo Molnar <>

    kernel/sched.c | 6 ++++++
    1 files changed, 6 insertions(+)

    Index: linux-sched-curr/kernel/sched.c
    --- linux-sched-curr.orig/kernel/sched.c
    +++ linux-sched-curr/kernel/sched.c
    @@ -1253,7 +1253,13 @@ static int try_to_wake_up(task_t *p, uns
    if (unlikely(task_running(rq, p)))
    goto out_activate;

    + /*
    + * Only do wakeup-balancing (== potentially migrate the task)
    + * if this CPU is idle:
    + */
    new_cpu = cpu;
    + if (!idle_cpu(this_cpu))
    + goto out_set_cpu;

    schedstat_inc(rq, ttwu_cnt);
    if (cpu == this_cpu) {
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at
     \ /
      Last update: 2005-07-29 17:06    [W:0.020 / U:42.508 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site