1. 19 3月, 2008 8 次提交
    • I
      sched: tune multi-core idle balancing · 33b0c421
      Ingo Molnar 提交于
      WAKE_IDLE is too agressive on multi-core CPUs with the new
      wake-affine code, keep it on for SMT/HT balancing alone
      (where there's no cache affinity at all between logical CPUs).
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      33b0c421
    • I
      sched: retune wake granularity · 74e3cd7f
      Ingo Molnar 提交于
      reduce wake-up granularity for better interactivity.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      74e3cd7f
    • I
      sched: wakeup-buddy tasks are cache-hot · f540a608
      Ingo Molnar 提交于
      Wakeup-buddy tasks are cache-hot - this makes it a bit harder
      for the load-balancer to tear them apart. (but it's still possible,
      if the load is sufficiently assymetric)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f540a608
    • I
      sched: improve affine wakeups · 4ae7d5ce
      Ingo Molnar 提交于
      improve affine wakeups. Maintain the 'overlap' metric based on CFS's
      sum_exec_runtime - which means the amount of time a task executes
      after it wakes up some other task.
      
      Use the 'overlap' for the wakeup decisions: if the 'overlap' is short,
      it means there's strong workload coupling between this task and the
      woken up task. If the 'overlap' is large then the workload is decoupled
      and the scheduler will move them to separate CPUs more easily.
      
      ( Also slightly move the preempt_check within try_to_wake_up() - this has
        no effect on functionality but allows 'early wakeups' (for still-on-rq
        tasks) to be correctly accounted as well.)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4ae7d5ce
    • I
      sched, net: socket wakeups are sync · 6f3d0929
      Ingo Molnar 提交于
      'sync' wakeups are a hint towards the scheduler that (certain)
      networking related wakeups likely create coupling between tasks.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6f3d0929
    • I
      sched: clean up wakeup balancing, code flow · f4827386
      Ingo Molnar 提交于
      Clean up the code flow. No code changed:
      
      kernel/sched.o:
      
         text	   data	    bss	    dec	    hex	filename
        42521	   2858	    232	  45611	   b22b	sched.o.before
        42521	   2858	    232	  45611	   b22b	sched.o.after
      
      md5:
         09b31c44e9aff8666f72773dc433e2df  sched.o.before.asm
         09b31c44e9aff8666f72773dc433e2df  sched.o.after.asm
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f4827386
    • I
      sched: clean up wakeup balancing, rename variables · ac192d39
      Ingo Molnar 提交于
      rename 'cpu' to 'prev_cpu'. No code changed:
      
      kernel/sched.o:
      
         text	   data	    bss	    dec	    hex	filename
        42521	   2858	    232	  45611	   b22b	sched.o.before
        42521	   2858	    232	  45611	   b22b	sched.o.after
      
      md5:
         09b31c44e9aff8666f72773dc433e2df  sched.o.before.asm
         09b31c44e9aff8666f72773dc433e2df  sched.o.after.asm
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ac192d39
    • I
      sched: clean up wakeup balancing, move wake_affine() · 098fb9db
      Ingo Molnar 提交于
      split out the affine-wakeup bits.
      
      No code changed:
      
      kernel/sched.o:
      
         text	   data	    bss	    dec	    hex	filename
        42521	   2858	    232	  45611	   b22b	sched.o.before
        42521	   2858	    232	  45611	   b22b	sched.o.after
      
      md5:
         9d76738f1272aa82f0b7affd2f51df6b  sched.o.before.asm
         09b31c44e9aff8666f72773dc433e2df  sched.o.after.asm
      
      (the md5's changed because stack slots changed and some registers
      get scheduled by gcc in a different order - but otherwise the before
      and after assembly is instruction for instruction equivalent.)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      098fb9db
  2. 18 3月, 2008 32 次提交