• Yang Jihong's avatar
    perf sched timehist: Add --prio option · 9b3a48bb
    Yang Jihong authored
    The --prio option is used to only show events for the given task priority(ies).
    The default is to show events for all priority tasks, which is consistent with
    the previous behavior.
    
    Testcase:
      # perf sched record nice -n 9 perf bench sched messaging -l 10000
      # Running 'sched/messaging' benchmark:
      # 20 sender and receiver processes per group
      # 10 groups == 400 processes run
    
           Total time: 3.435 [sec]
      [ perf record: Woken up 270 times to write data ]
      [ perf record: Captured and wrote 618.688 MB perf.data (5729036 samples) ]
    
      # perf sched timehist -h
    
       Usage: perf sched timehist [<options>]
    
          -C, --cpu <cpu>       list of cpus to profile
          -D, --dump-raw-trace  dump raw trace in ASCII
          -f, --force           don't complain, do it
          -g, --call-graph      Display call chains if present (default on)
          -I, --idle-hist       Show idle events only
          -i, --input <file>    input file name
          -k, --vmlinux <file>  vmlinux pathname
          -M, --migrations      Show migration events
          -n, --next            Show next task
          -p, --pid <pid[,pid...]>
                                analyze events only for given process id(s)
          -s, --summary         Show only syscall summary with statistics
          -S, --with-summary    Show all syscalls and summary with statistics
          -t, --tid <tid[,tid...]>
                                analyze events only for given thread id(s)
          -V, --cpu-visual      Add CPU visual
          -v, --verbose         be more verbose (show symbol address, etc)
          -w, --wakeups         Show wakeup events
              --kallsyms <file>
                                kallsyms pathname
              --max-stack <n>   Maximum number of functions to display backtrace.
              --prio <prio>     analyze events only for given task priority(ies)
              --show-prio       Show task priority
              --state           Show task state when sched-out
              --symfs <directory>
                                Look for files with symbols relative to this directory
              --time <str>      Time span for analysis (start,stop)
    
      # perf sched timehist --prio 140
      Samples of sched_switch event do not have callchains.
      Invalid prio string
    
      # perf sched timehist --show-prio --prio 129
      Samples of sched_switch event do not have callchains.
                 time    cpu  task name                       prio      wait time  sch delay   run time
                              [tid/pid]                                    (msec)     (msec)     (msec)
      --------------- ------  ------------------------------  --------  ---------  ---------  ---------
       2090450.765421 [0002]  sched-messaging[1229618]        129           0.000      0.000      0.029
       2090450.765445 [0007]  sched-messaging[1229616]        129           0.000      0.062      0.043
       2090450.765448 [0014]  sched-messaging[1229619]        129           0.000      0.000      0.032
       2090450.765478 [0013]  sched-messaging[1229617]        129           0.000      0.065      0.048
       2090450.765503 [0014]  sched-messaging[1229622]        129           0.000      0.000      0.017
       2090450.765550 [0002]  sched-messaging[1229624]        129           0.000      0.000      0.021
       2090450.765562 [0007]  sched-messaging[1229621]        129           0.000      0.071      0.028
       2090450.765570 [0005]  sched-messaging[1229620]        129           0.000      0.064      0.066
       2090450.765583 [0001]  sched-messaging[1229625]        129           0.000      0.001      0.031
       2090450.765595 [0013]  sched-messaging[1229623]        129           0.000      0.060      0.028
       2090450.765637 [0014]  sched-messaging[1229628]        129           0.000      0.000      0.019
       2090450.765665 [0007]  sched-messaging[1229627]        129           0.000      0.038      0.030
      <SNIP>
    
      # perf sched timehist --show-prio --prio 0,120-129
      Samples of sched_switch event do not have callchains.
                 time    cpu  task name                       prio      wait time  sch delay   run time
                              [tid/pid]                                    (msec)     (msec)     (msec)
      --------------- ------  ------------------------------  --------  ---------  ---------  ---------
       2090450.763231 [0000]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763235 [0000]  migration/0[15]                 0             0.000      0.001      0.003
       2090450.763263 [0001]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763268 [0001]  migration/1[21]                 0             0.000      0.001      0.004
       2090450.763302 [0002]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763309 [0002]  migration/2[27]                 0             0.000      0.001      0.007
       2090450.763338 [0003]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763343 [0003]  migration/3[33]                 0             0.000      0.001      0.004
       2090450.763459 [0004]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763469 [0004]  migration/4[39]                 0             0.000      0.002      0.010
       2090450.763496 [0005]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763501 [0005]  migration/5[45]                 0             0.000      0.001      0.004
       2090450.763613 [0006]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763622 [0006]  migration/6[51]                 0             0.000      0.001      0.008
       2090450.763652 [0007]  perf[1229608]                   120           0.000      0.000      0.000
       2090450.763660 [0007]  migration/7[57]                 0             0.000      0.001      0.008
      <SNIP>
       2090450.765665 [0001]  <idle>                          120           0.031      0.031      0.081
       2090450.765665 [0007]  sched-messaging[1229627]        129           0.000      0.038      0.030
       2090450.765667 [0000]  s1-perf[8235/7168]              120           0.008      0.000      0.004
       2090450.765684 [0013]  <idle>                          120           0.028      0.028      0.088
       2090450.765685 [0001]  sched-messaging[1229630a]        129           0.000      0.001      0.020
       2090450.765688 [0000]  <idle>                          120           0.004      0.004      0.020
       2090450.765689 [0002]  <idle>                          120           0.021      0.021      0.138
       2090450.765691 [0005]  sched-messaging[1229626]        129           0.000      0.085      0.029
    Signed-off-by: default avatarYang Jihong <yangjihong@bytedance.com>
    Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20240819033016.2427235-3-yangjihong@bytedance.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9b3a48bb
perf-sched.txt 7.17 KB