perf trace: Sample the CPU too
Sample, record, parse and print the CPU field - it had all zeroes before.
Before (watch the second column, the CPU values):
perf-32685 [000] 0.000000: sched_wakeup_new: task perf:32686 [120] success=1 [011]
perf-32685 [000] 0.000000: sched_migrate_task: task perf:32685 [120] from: 1 to: 11
perf-32685 [000] 0.000000: sched_process_fork: parent perf:32685 child perf:32686
true-32686 [000] 0.000000: sched_wakeup: task migration/11:25 [0] success=1 [011]
true-32686 [000] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
true-32686 [000] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
perf-32685 [000] 0.000000: sched_switch: task perf:32685 [120] (S) ==> swapper:0 [140]
true-32686 [000] 0.000000: sched_switch: task perf:32686 [120] (R) ==> migration/11:25 [0]
true-32686 [000] 0.000000: sched_switch: task perf:32686 [120] (R) ==> distccd:12793 [125]
true-32686 [000] 0.000000: sched_switch: task true:32686 [120] (R) ==> distccd:12793 [125]
true-32686 [000] 0.000000: sched_process_exit: task true:32686 [120]
true-32686 [000] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767985949080 [ns]
true-32686 [000] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767986139446 [ns]
true-32686 [000] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 132844 [ns]
true-32686 [000] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 131724 [ns]
After:
perf-32685 [001] 0.000000: sched_wakeup_new: task perf:32686 [120] success=1 [011]
perf-32685 [001] 0.000000: sched_migrate_task: task perf:32685 [120] from: 1 to: 11
perf-32685 [001] 0.000000: sched_process_fork: parent perf:32685 child perf:32686
true-32686 [011] 0.000000: sched_wakeup: task migration/11:25 [0] success=1 [011]
true-32686 [015] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
true-32686 [015] 0.000000: sched_wakeup: task distccd:12793 [125] success=1 [015]
perf-32685 [001] 0.000000: sched_switch: task perf:32685 [120] (S) ==> swapper:0 [140]
true-32686 [011] 0.000000: sched_switch: task perf:32686 [120] (R) ==> migration/11:25 [0]
true-32686 [015] 0.000000: sched_switch: task perf:32686 [120] (R) ==> distccd:12793 [125]
true-32686 [015] 0.000000: sched_switch: task true:32686 [120] (R) ==> distccd:12793 [125]
true-32686 [015] 0.000000: sched_process_exit: task true:32686 [120]
true-32686 [015] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767985949080 [ns]
true-32686 [015] 0.000000: sched_stat_wait: task: distccd:12793 wait: 6767986139446 [ns]
true-32686 [015] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 132844 [ns]
true-32686 [015] 0.000000: sched_stat_sleep: task: distccd:12793 sleep: 131724 [ns]
So we can now see how this workload migrated between CPUs.
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <new-submission>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Showing
想要评论请 注册 或 登录