一、cpu调度调试方法
echo 0 > /sys/kernel/debug/tracing/tracing_on
echo > /sys/kernel/debug/tracing/trace
echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb
echo nop > /sys/kernel/debug/tracing/current_tracer
echo 'sched_switch sched_wakeup sched_wakeup_new sched_waking ' > /sys/kernel/debug/tracing/set_event
echo > /sys/kernel/debug/tracing/trace
echo 1 > /sys/kernel/debug/tracing/tracing_on
Start tracing:
echo 1 > /sys/kernel/debug/tracing/tracing_on
Test:
echo 0 > /sys/kernel/debug/tracing/tracing_on
adb pull /sys/kernel/debug/tracing/trace trace.txt
二、cpu调度分析
chrome浏览器打开选择文件trace.txt文件;
浏览器网址:Perfetto UI
对于 Perfetto 文件,请点击 Open trace file。对于 Systrace 文件,请点击 Open with legacy UI。
查看快捷键:A左移D右移,W放大S缩小。
通过perfetto可以观察到每个进程或者每个线程在每个cpu上调度的密集程度,以及在每个cpu上的占用密度比。