• Andrew Theurer's avatar
    [PATCH] sched: more agressive wake_idle() · f16c759b
    Andrew Theurer authored
    This patch addresses some problems with wake_idle().  Currently wake_idle()
    will wake a task on an alternate cpu if:
    
    1) task->cpu is not idle
    2) an idle cpu can be found
    
    However the span of cpus to look for is very limited (only the task->cpu's
    sibling).  The scheduler should find the closest idle cpu, starting with
    the lowest level domain, then going to higher level domains if allowed
    (doamin has flag SD_WAKE_IDLE).  This patch does this.
    
    This and the other two patches (also to be submitted) combined have
    provided as much at 5% improvement on that "online transaction DB workload"
    and 2% on the industry standard J@EE workload.
    
    I asked Martin Bligh to test these for regression, and he did not find any.
     I would like to submit for inclusion to -mm and barring any problems
    eventually to mainline.
    
    Signed-off-by: <habanero@us.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    f16c759b
sched.c 116 KB