• Suresh Siddha's avatar
    sched: fix broken SMT/MC optimizations · f8700df7
    Suresh Siddha authored
    On a four package system with HT - HT load balancing optimizations were
    broken.  For example, if two tasks end up running on two logical threads
    of one of the packages, scheduler is not able to pull one of the tasks
    to a completely idle package.
    
    In this scenario, for nice-0 tasks, imbalance calculated by scheduler
    will be 512 and find_busiest_queue() will return 0 (as each cpu's load
    is 1024 > imbalance and has only one task running).
    
    Similarly MC scheduler optimizations also get fixed with this patch.
    
    [ mingo@elte.hu: restored fair balancing by increasing the fuzz and
                     adding it back to the power decision, without the /2
                     factor. ]
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    f8700df7
sched.c 166 KB