1. 11 4月, 2011 1 次提交
    • K
      sched: Fix sched-domain avg_load calculation · b0432d8f
      Ken Chen 提交于
      In function find_busiest_group(), the sched-domain avg_load isn't
      calculated at all if there is a group imbalance within the domain. This
      will cause erroneous imbalance calculation.
      
      The reason is that calculate_imbalance() sees sds->avg_load = 0 and it
      will dump entire sds->max_load into imbalance variable, which is used
      later on to migrate entire load from busiest CPU to the puller CPU.
      
      This has two really bad effect:
      
      1. stampede of task migration, and they won't be able to break out
         of the bad state because of positive feedback loop: large load
         delta -> heavier load migration -> larger imbalance and the cycle
         goes on.
      
      2. severe imbalance in CPU queue depth.  This causes really long
         scheduling latency blip which affects badly on application that
         has tight latency requirement.
      
      The fix is to have kernel calculate domain avg_load in both cases. This
      will ensure that imbalance calculation is always sensible and the target
      is usually half way between busiest and puller CPU.
      Signed-off-by: NKen Chen <kenchen@google.com>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: <stable@kernel.org>
      Link: http://lkml.kernel.org/r/20110408002322.3A0D812217F@elm.corp.google.comSigned-off-by: NIngo Molnar <mingo@elte.hu>
      b0432d8f
  2. 09 4月, 2011 1 次提交
  3. 05 4月, 2011 3 次提交
  4. 04 4月, 2011 1 次提交
  5. 03 4月, 2011 1 次提交
  6. 01 4月, 2011 1 次提交
  7. 31 3月, 2011 5 次提交
  8. 30 3月, 2011 3 次提交
  9. 29 3月, 2011 8 次提交
  10. 28 3月, 2011 3 次提交
  11. 27 3月, 2011 5 次提交
  12. 26 3月, 2011 3 次提交
  13. 25 3月, 2011 1 次提交
  14. 24 3月, 2011 4 次提交