• Bharata B Rao's avatar
    sched: include group statistics in /proc/sched_debug · ff9b48c3
    Bharata B Rao authored
    Impact: extend /proc/sched_debug info
    
    Since the statistics of a group entity isn't exported directly from the
    kernel, it becomes difficult to obtain some of the group statistics.
    For example, the current method to obtain exec time of a group entity
    is not always accurate. One has to read the exec times of all
    the tasks(/proc/<pid>/sched) in the group and add them. This method
    fails (or becomes difficult) if we want to collect stats of a group over
    a duration where tasks get created and terminated.
    
    This patch makes it easier to obtain group stats by directly including
    them in /proc/sched_debug. Stats like group exec time would help user
    programs (like LTP) to accurately measure the group fairness.
    
    An example output of group stats from /proc/sched_debug:
    
    cfs_rq[3]:/3/a/1
      .exec_clock                    : 89.598007
      .MIN_vruntime                  : 0.000001
      .min_vruntime                  : 256300.970506
      .max_vruntime                  : 0.000001
      .spread                        : 0.000000
      .spread0                       : -25373.372248
      .nr_running                    : 0
      .load                          : 0
      .yld_exp_empty                 : 0
      .yld_act_empty                 : 0
      .yld_both_empty                : 0
      .yld_count                     : 4474
      .sched_switch                  : 0
      .sched_count                   : 40507
      .sched_goidle                  : 12686
      .ttwu_count                    : 15114
      .ttwu_local                    : 11950
      .bkl_count                     : 67
      .nr_spread_over                : 0
      .shares                        : 0
      .se->exec_start                : 113676.727170
      .se->vruntime                  : 1592.612714
      .se->sum_exec_runtime          : 89.598007
      .se->wait_start                : 0.000000
      .se->sleep_start               : 0.000000
      .se->block_start               : 0.000000
      .se->sleep_max                 : 0.000000
      .se->block_max                 : 0.000000
      .se->exec_max                  : 1.000282
      .se->slice_max                 : 1.999750
      .se->wait_max                  : 54.981093
      .se->wait_sum                  : 217.610521
      .se->wait_count                : 50
      .se->load.weight               : 2
    Signed-off-by: default avatarBharata B Rao <bharata@linux.vnet.ibm.com>
    Acked-by: default avatarSrivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
    Acked-by: default avatarDhaval Giani <dhaval@linux.vnet.ibm.com>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    ff9b48c3
sched_debug.c 11.1 KB