• C
    [PATCH] sched: revert "filter affine wakeups" · d6077cb8
    Chen, Kenneth W 提交于
    Revert commit d7102e95:
    
        [PATCH] sched: filter affine wakeups
    
    Apparently caused more than 10% performance regression for aim7 benchmark.
    The setup in use is 16-cpu HP rx8620, 64Gb of memory and 12 MSA1000s with 144
    disks.  Each disk is 72Gb with a single ext3 filesystem (courtesy of HP, who
    supplied benchmark results).
    
    The problem is, for aim7, the wake-up pattern is random, but it still needs
    load balancing action in the wake-up path to achieve best performance.  With
    the above commit, lack of load balancing hurts that workload.
    
    However, for workloads like database transaction processing, the requirement
    is exactly opposite.  In the wake up path, best performance is achieved with
    absolutely zero load balancing.  We simply wake up the process on the CPU that
    it was previously run.  Worst performance is obtained when we do load
    balancing at wake up.
    
    There isn't an easy way to auto detect the workload characteristics.  Ingo's
    earlier patch that detects idle CPU and decide whether to load balance or not
    doesn't perform with aim7 either since all CPUs are busy (it causes even
    bigger perf.  regression).
    
    Revert commit d7102e95, which causes more
    than 10% performance regression with aim7.
    Signed-off-by: NKen Chen <kenneth.w.chen@intel.com>
    Acked-by: NIngo Molnar <mingo@elte.hu>
    Cc: Nick Piggin <nickpiggin@yahoo.com.au>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    d6077cb8
sched.h 45.0 KB