• Yun Wang's avatar
    sched/debug: Show the sum wait time of a task group · 3d6c50c2
    Yun Wang authored
    Although we can rely on cpuacct to present the CPU usage of task
    groups, it is hard to tell how intense the competition is between
    these groups on CPU resources.
    
    Monitoring the wait time or sched_debug of each process could be
    very expensive, and there is no good way to accurately represent the
    conflict with these info, we need the wait time on group dimension.
    
    Thus we introduce group's wait_sum to represent the resource conflict
    between task groups, which is simply the sum of the wait time of
    the group's cfs_rq.
    
    The 'cpu.stat' is modified to show the statistic, like:
    
       nr_periods 0
       nr_throttled 0
       throttled_time 0
       wait_sum 2035098795584
    
    Now we can monitor the changes of wait_sum to tell how much a
    a task group is suffering in the fight of CPU resources.
    
    For example:
    
       (wait_sum - last_wait_sum) * 100 / (nr_cpu * period_ns) == X%
    
    means the task group paid X percentage of period on waiting
    for the CPU.
    Signed-off-by: default avatarMichael Wang <yun.wang@linux.alibaba.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/ff7dae3b-e5f9-7157-1caa-ff02c6b23dc1@linux.alibaba.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    3d6c50c2
core.c 173 KB