• Shakeel Butt's avatar
    psi: Reduce calls to sched_clock() in psi · df774306
    Shakeel Butt authored
    We noticed that the cost of psi increases with the increase in the
    levels of the cgroups. Particularly the cost of cpu_clock() sticks out
    as the kernel calls it multiple times as it traverses up the cgroup
    tree. This patch reduces the calls to cpu_clock().
    
    Performed perf bench on Intel Broadwell with 3 levels of cgroup.
    
    Before the patch:
    
    $ perf bench sched all
     # Running sched/messaging benchmark...
     # 20 sender and receiver processes per group
     # 10 groups == 400 processes run
    
         Total time: 0.747 [sec]
    
     # Running sched/pipe benchmark...
     # Executed 1000000 pipe operations between two processes
    
         Total time: 3.516 [sec]
    
           3.516689 usecs/op
             284358 ops/sec
    
    After the patch:
    
    $ perf bench sched all
     # Running sched/messaging benchmark...
     # 20 sender and receiver processes per group
     # 10 groups == 400 processes run
    
         Total time: 0.640 [sec]
    
     # Running sched/pipe benchmark...
     # Executed 1000000 pipe operations between two processes
    
         Total time: 3.329 [sec]
    
           3.329820 usecs/op
             300316 ops/sec
    Signed-off-by: default avatarShakeel Butt <shakeelb@google.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Link: https://lkml.kernel.org/r/20210321205156.4186483-1-shakeelb@google.com
    df774306
psi.c 37.1 KB