• Peter Zijlstra's avatar
    sched/fair: Optimize cgroup pick_next_task_fair() · 678d5718
    Peter Zijlstra authored
    Since commit 2f36825b ("sched: Next buddy hint on sleep and preempt
    path") it is likely we pick a new task from the same cgroup, doing a put
    and then set on all intermediate entities is a waste of time, so try to
    avoid this.
    
    Measured using:
    
      mount nodev /cgroup -t cgroup -o cpu
      cd /cgroup
      mkdir a; cd a
      mkdir b; cd b
      mkdir c; cd c
      echo $$ > tasks
      perf stat --repeat 10 -- taskset 1 perf bench sched pipe
    
    PRE :      4.542422684 seconds time elapsed   ( +-  0.33% )
    POST:      4.389409991 seconds time elapsed   ( +-  0.32% )
    
    Which shows a significant improvement of ~3.5%
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tejun Heo <tj@kernel.org>
    Link: http://lkml.kernel.org/r/1328936700.2476.17.camel@laptopSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    678d5718
fair.c 196 KB