• Namhyung Kim's avatar
    perf sched timehist: Mark schedule function in callchains · cdeb01bf
    Namhyung Kim authored
    The sched_switch event always captured from the scheduler function.  So
    it'd be great omit them from the callchain.  This patch marks the
    functions to be omitted by later patch.
    
    Committer notes:
    
    Testing it:
    
    Before:
    
      [root@jouet experimental]# perf sched record -g ls
      Dockerfile  perf.data  x-mips64
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 1.355 MB perf.data (29 samples) ]
      [root@jouet experimental]# perf sched timehist
          time  cpu  task name         wait time sch delay run time
                     [tid/pid]             (msec) (msec) (msec)
      ----------- -----  ----------------- ------ ------ ------
      6.494998 [001] <idle>                0.000  0.000  0.000
      6.495027 [002] perf[519]             0.000  0.000  0.000 __schedule <- schedule <- schedule_hrtimeout_range_clock <- schedule_hrtimeou
      6.495096 [003] <idle>                0.000  0.000  0.000
      6.495100 [003] rcuos/0[9]            0.000  0.005  0.003 __schedule <- schedule <- rcu_nocb_kthread <- kthread <- ret_from_fork
      6.495113 [001] perf[520]             0.000  0.008  0.114 __schedule <- preempt_schedule_common <- _cond_resched <- wait_for_completion
      6.495121 [000] <idle>                0.000  0.000  0.000
      6.495129 [001] migration/1[17]       0.000  0.003  0.016 __schedule <- schedule <- smpboot_thread_fn <- kthread <- ret_from_fork
      6.496085 [002] <idle>                0.000  0.000  1.057
      6.496096 [002] kworker/u16:1[31169]  0.000  0.004  0.011 __schedule <- schedule <- worker_thread <- kthread <- ret_from_fork
      6.496096 [003] <idle>                0.003  0.000  0.996
      6.496169 [002] <idle>                0.011  0.000  0.072
      6.496171 [000] ls[520]               0.008  0.000  1.049 __schedule <- schedule <- do_exit <- do_group_exit <- [unknown]
      6.496172 [003] gnome-terminal-[4391] 0.000  0.003  0.076 __schedule <- schedule <- schedule_hrtimeout_range_clock <- schedule_hrtimeo
    
    After:
    
      [root@jouet experimental]# perf sched timehist
          time  cpu  task name         wait time sch delay run time
                     [tid/pid]            (msec)  (msec)  (msec)
      ----------- -----  ----------------- -----  -----  ------
      6.494998 [001] <idle>                0.000  0.000  0.000
      6.495027 [002] perf[519]             0.000  0.000  0.000 schedule_hrtimeout_range_clock <- schedule_hrtimeout_range <- poll_schedule_t
      6.495096 [003] <idle>                0.000  0.000  0.000
      6.495100 [003] rcuos/0[9]            0.000  0.005  0.003 rcu_nocb_kthread <- kthread <- ret_from_fork
      6.495113 [001] perf[520]             0.000  0.008  0.114 preempt_schedule_common <- _cond_resched <- wait_for_completion <- stop_one_c
      6.495121 [000] <idle>                0.000  0.000  0.000
      6.495129 [001] migration/1[17]       0.000  0.003  0.016 smpboot_thread_fn <- kthread <- ret_from_fork
      6.496085 [002] <idle>                0.000  0.000  1.057
      6.496096 [002] kworker/u16:1[31169]  0.000  0.004  0.011 worker_thread <- kthread <- ret_from_fork
      6.496096 [003] <idle>                0.003  0.000  0.996
      6.496169 [002] <idle>                0.011  0.000  0.072
      6.496171 [000] ls[520]               0.008  0.000  1.049 do_exit <- do_group_exit <- [unknown]
      6.496172 [003] gnome-terminal-[4391] 0.000  0.003  0.076 schedule_hrtimeout_range_clock <- schedule_hrtimeout_range <- poll_schedule_
      [root@jouet experimental]#
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/20161124011114.7102-1-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    cdeb01bf
builtin-sched.c 73.9 KB