An error occurred fetching the project authors.
  1. 08 May, 2008 1 commit
  2. 05 May, 2008 5 commits
  3. 19 Apr, 2008 13 commits
  4. 14 Apr, 2008 1 commit
  5. 21 Mar, 2008 1 commit
  6. 19 Mar, 2008 5 commits
    • Ingo Molnar's avatar
      sched: retune wake granularity · 74e3cd7f
      Ingo Molnar authored
      reduce wake-up granularity for better interactivity.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      74e3cd7f
    • Ingo Molnar's avatar
      sched: improve affine wakeups · 4ae7d5ce
      Ingo Molnar authored
      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: default avatarIngo Molnar <mingo@elte.hu>
      4ae7d5ce
    • Ingo Molnar's avatar
      sched: clean up wakeup balancing, code flow · f4827386
      Ingo Molnar authored
      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: default avatarIngo Molnar <mingo@elte.hu>
      f4827386
    • Ingo Molnar's avatar
      sched: clean up wakeup balancing, rename variables · ac192d39
      Ingo Molnar authored
      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: default avatarIngo Molnar <mingo@elte.hu>
      ac192d39
    • Ingo Molnar's avatar
      sched: clean up wakeup balancing, move wake_affine() · 098fb9db
      Ingo Molnar authored
      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: default avatarIngo Molnar <mingo@elte.hu>
      098fb9db
  7. 15 Mar, 2008 4 commits
    • Ingo Molnar's avatar
      sched: simplify sched_slice() · 6a6029b8
      Ingo Molnar authored
      Use the existing calc_delta_mine() calculation for sched_slice(). This
      saves a divide and simplifies the code because we share it with the
      other /cfs_rq->load users.
      
      It also improves code size:
      
            text    data     bss     dec     hex filename
           42659    2740     144   45543    b1e7 sched.o.before
           42093    2740     144   44977    afb1 sched.o.after
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      6a6029b8
    • Ingo Molnar's avatar
      sched: fix fair sleepers · e22ecef1
      Ingo Molnar authored
      Fair sleepers need to scale their latency target down by runqueue
      weight. Otherwise busy systems will gain ever larger sleep bonus.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      e22ecef1
    • Peter Zijlstra's avatar
      sched: fix overload performance: buddy wakeups · aa2ac252
      Peter Zijlstra authored
      Currently we schedule to the leftmost task in the runqueue. When the
      runtimes are very short because of some server/client ping-pong,
      especially in over-saturated workloads, this will cycle through all
      tasks trashing the cache.
      
      Reduce cache trashing by keeping dependent tasks together by running
      newly woken tasks first. However, by not running the leftmost task first
      we could starve tasks because the wakee can gain unlimited runtime.
      
      Therefore we only run the wakee if its within a small
      (wakeup_granularity) window of the leftmost task. This preserves
      fairness, but does alternate server/client task groups.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      aa2ac252
    • Peter Zijlstra's avatar
      sched: min_vruntime fix · 3fe69747
      Peter Zijlstra authored
      Current min_vruntime tracking is incorrect and will cause serious
      problems when we don't run the leftmost task for some reason.
      
      min_vruntime does two things; 1) it's used to determine a forward
      direction when the u64 vruntime wraps, 2) it's used to track the
      leftmost vruntime to position newly enqueued tasks from.
      
      The current logic advances min_vruntime whenever the current task's
      vruntime advance. Because the current task may pass the leftmost task
      still waiting we're failing the second goal. This causes new tasks to be
      placed too far ahead and thus penalizes their runtime.
      
      Fix this by making min_vruntime the min_vruntime of the waiting tasks by
      tracking it in enqueue/dequeue, and compare against current's vruntime
      to obtain the absolute minimum when placing new tasks.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3fe69747
  8. 07 Mar, 2008 1 commit
  9. 04 Mar, 2008 1 commit
    • Peter Zijlstra's avatar
      sched: revert load_balance_monitor() changes · 62fb1851
      Peter Zijlstra authored
      The following commits cause a number of regressions:
      
        commit 58e2d4ca
        Author: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
        Date:   Fri Jan 25 21:08:00 2008 +0100
        sched: group scheduling, change how cpu load is calculated
      
        commit 6b2d7700
        Author: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
        Date:   Fri Jan 25 21:08:00 2008 +0100
        sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups
      
      Namely:
       - very frequent wakeups on SMP, reported by PowerTop users.
       - cacheline trashing on (large) SMP
       - some latencies larger than 500ms
      
      While there is a mergeable patch to fix the latter, the former issues
      are not fixable in a manner suitable for .25 (we're at -rc3 now).
      
      Hence we revert them and try again in v2.6.26.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      CC: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
      Tested-by: default avatarAlexey Zaytsev <alexey.zaytsev@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      62fb1851
  10. 25 Feb, 2008 2 commits
  11. 31 Jan, 2008 2 commits
    • Peter Zijlstra's avatar
      sched: let +nice tasks have smaller impact · ef9884e6
      Peter Zijlstra authored
      Michel Dänzr has bisected an interactivity problem with
      plus-reniced tasks back to this commit:
      
       810e95cc is first bad commit
       commit 810e95cc
       Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
       Date:   Mon Oct 15 17:00:14 2007 +0200
      
       sched: another wakeup_granularity fix
      
            unit mis-match: wakeup_gran was used against a vruntime
      
      fix this by assymetrically scaling the vtime of positive reniced
      tasks.
      Bisected-by: default avatarMichel Dänzer <michel@tungstengraphics.com>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ef9884e6
    • Srivatsa Vaddagiri's avatar
      sched: fix high wake up latencies with FAIR_USER_SCHED · 296825cb
      Srivatsa Vaddagiri authored
      The reason why we are getting better wakeup latencies for
      !FAIR_USER_SCHED is because of this snippet of code in place_entity():
      
      	if (!initial) {
      		/* sleeps upto a single latency don't count. */
      		if (sched_feat(NEW_FAIR_SLEEPERS) && entity_is_task(se))
      						     ^^^^^^^^^^^^^^^^^^
      			vruntime -= sysctl_sched_latency;
      
      		/* ensure we never gain time by being placed backwards. */
      		vruntime = max_vruntime(se->vruntime, vruntime);
      	}
      
      NEW_FAIR_SLEEPERS feature gives credit for sleeping only to tasks and
      not group-level entities. With the patch attached, I could see that
      wakeup latencies with FAIR_USER_SCHED are restored to the same level as
      !FAIR_USER_SCHED.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      296825cb
  12. 25 Jan, 2008 4 commits