PERF-SCHED(1) perf Manual PERF-SCHED(1) (NAME) perf-sched - () (SYNOPSIS) perf sched {record|latency|map|replay|script|timehist|stats} (DESCRIPTION) perf sched : 'perf sched record ' . 'perf sched latency' . : perf sched record -- sleep 1 perf sched latency ------------------------------------------------------------------------------------------------------------------------------------- Task | Runtime ms | Count | Avg delay ms | Max delay ms | Max delay start | Max delay end | ------------------------------------------------------------------------------------------------------------------------------------- perf:(2) | 2.804 ms | 66 | avg: 0.524 ms | max: 1.069 ms | max start: 254752.314960 s | max end: 254752.316029 s NetworkManager:1343 | 0.372 ms | 13 | avg: 0.008 ms | max: 0.013 ms | max start: 254751.551153 s | max end: 254751.551166 s kworker/1:2-xfs:4649 | 0.012 ms | 1 | avg: 0.008 ms | max: 0.008 ms | max start: 254751.519807 s | max end: 254751.519815 s kworker/3:1-xfs:388 | 0.011 ms | 1 | avg: 0.006 ms | max: 0.006 ms | max start: 254751.519809 s | max end: 254751.519815 s sleep:147736 | 0.938 ms | 3 | avg: 0.006 ms | max: 0.007 ms | max start: 254751.313817 s | max end: 254751.313824 s Runtime ( CPU ) Count ( ) delay ( ) . () -p pid . 'perf sched script' ( 'perf script' ). 'perf sched replay' perf sched record . ( . ( CPU ) - .) 'perf sched map' (context-switching) perf sched record. CPU CPU . '*' CPU CPU . 'perf sched timehist' . : perf sched record -- sleep 1 perf sched timehist (wait time sched-out sched-in ) (scheduling delay ) (run time) : time cpu task name wait time sch delay run time [tid/pid] (msec) (msec) (msec) -------------- ------ -------------------- --------- --------- --------- 79371.874569 [0011] gcc[31949] 0.014 0.000 1.148 79371.874591 [0010] gcc[31951] 0.000 0.000 0.024 79371.874603 [0010] migration/10[59] 3.350 0.004 0.011 79371.874604 [0011] 1.148 0.000 0.035 79371.874723 [0005] 0.016 0.000 1.383 79371.874746 [0005] gcc[31949] 0.153 0.078 0.022 ... msec.usec . 'perf sched stats {record | report | diff} ' schedstat perf sched stats . schedstat ``/proc/schedstat`` . sysctl ``/proc/sys/kernel/sched_schedstats`` . ``schedule()`` (load-balancing) ``try_to_wakeup()`` . . : `/proc/schedstat` / cpu . : perf sched stats record -- sleep 1 perf sched stats report perf sched stats diff schedstat : https://www.kernel.org/doc/html/latest/scheduler/sched-stats.html : `perf sched stats report` . cpu domain . ---------------------------------------------------------------------------------------------------- DESC -> Description of the field COUNT -> Value of the field PCT_CHANGE -> Percent change with corresponding base value AVG_JIFFIES -> Avg time in jiffies between two consecutive occurrence of event ---------------------------------------------------------------------------------------------------- jiffies : ---------------------------------------------------------------------------------------------------- Time elapsed (in jiffies) : 2323 ---------------------------------------------------------------------------------------------------- CPU . CPU /proc/schedstat . % . schedule() CPU0 36.58% . 0.45% try_to_wake_up() CPU . CPU0 48.70% CPU . ---------------------------------------------------------------------------------------------------- CPU 0 ---------------------------------------------------------------------------------------------------- DESC COUNT PCT_CHANGE ---------------------------------------------------------------------------------------------------- yld_count : 0 array_exp : 0 sched_count : 402267 sched_goidle : 147161 ( 36.58% ) ttwu_count : 236309 ttwu_local : 1062 ( 0.45% ) rq_cpu_time : 7083791148 run_delay : 3449973971 ( 48.70% ) pcount : 255035 ---------------------------------------------------------------------------------------------------- (load balancing) . (: `SMT` `MC` `DIE`...) : 1) Idle Load Balance: CPU CPU . 2) Busy Load Balance: CPU . 3) New Idle Balance : CPU . sched stats . * . : ---------------------------------------------------------------------------------------------------- CPU 0, DOMAIN SMT CPUS 0,64 ---------------------------------------------------------------------------------------------------- DESC COUNT AVG_JIFFIES ----------------------------------------- ------------------------------------------ busy_lb_count : 136 $ 17.08 $ busy_lb_balanced : 131 $ 17.73 $ busy_lb_failed : 0 $ 0.00 $ busy_lb_imbalance_load : 58 busy_lb_imbalance_util : 0 busy_lb_imbalance_task : 0 busy_lb_imbalance_misfit : 0 busy_lb_gained : 7 busy_lb_hot_gained : 0 busy_lb_nobusyq : 2 $ 1161.50 $ busy_lb_nobusyg : 129 $ 18.01 $ *busy_lb_success_count : 5 *busy_lb_avg_pulled : 1.40 ----------------------------------------- ------------------------------------------ idle_lb_count : 449 $ 5.17 $ idle_lb_balanced : 382 $ 6.08 $ idle_lb_failed : 3 $ 774.33 $ idle_lb_imbalance_load : 0 idle_lb_imbalance_util : 0 idle_lb_imbalance_task : 71 idle_lb_imbalance_misfit : 0 idle_lb_gained : 67 idle_lb_hot_gained : 0 idle_lb_nobusyq : 0 $ 0.00 $ idle_lb_nobusyg : 382 $ 6.08 $ *idle_lb_success_count : 64 *idle_lb_avg_pulled : 1.05 ---------------------------------------- ---------------------------------------- newidle_lb_count : 30471 $ 0.08 $ newidle_lb_balanced : 28490 $ 0.08 $ newidle_lb_failed : 633 $ 3.67 $ newidle_lb_imbalance_load : 0 newidle_lb_imbalance_util : 0 newidle_lb_imbalance_task : 2040 newidle_lb_imbalance_misfit : 0 newidle_lb_gained : 1348 newidle_lb_hot_gained : 0 newidle_lb_nobusyq : 6 $ 387.17 $ newidle_lb_nobusyg : 26634 $ 0.09 $ *newidle_lb_success_count : 1348 *newidle_lb_avg_pulled : 1.00 ---------------------------------------------------------------------------------------------------- : newidle_lb_balanced : 28490 $ 0.08 $ CPU 0 . $ jiffies (2323 / 28490 = 0.08). active_load_balance() . alb 0 . --------------------------------- --------------------------------- alb_count : 0 alb_failed : 0 alb_pushed : 0 ---------------------------------------------------------------------------------------------------- sched_balance_exec() sched_balance_fork() . RFC . . (wakeup) . (task-wakeup) . : ------------------------------------------ ------------------------------------------- ttwu_wake_remote : 1590 ttwu_move_affine : 84 ttwu_move_balance : 0 ---------------------------------------------------------------------------------------------------- CPU (domain) . diff ~~~~~~~~~~~~~~~ `perf sched stats diff` diff . jiffies . . `perf.data.old` `perf.data` . : ---------------------------------------------------------------------------------------------------- Time elapsed (in jiffies) : 2009, 2001 ---------------------------------------------------------------------------------------- cpu domain . `|...|` . `perf sched stats report` . ---------------------------------------------------------------------------------------------------- CPU ---------------------------------------------------------------------------------------------------- DESC COUNT1 COUNT2 PCT_CHANG> ---------------------------------------------------------------------------------------------------- yld_count : 0, 0 | 0.00> array_exp : 0, 0 | 0.00> sched_count : 528533, 412573 | -21.94> sched_goidle : 193426, 146082 | -24.48> ttwu_count : 313134, 385975 | 23.26> ttwu_local : 1126, 1282 | 13.85> rq_cpu_time : 8257200244, 8301250047 | 0.53> run_delay : 4728347053, 3997100703 | -15.47> pcount : 335031, 266396 | -20.49> ---------------------------------------------------------------------------------------------------- diff domain : ---------------------------------------------------------------------------------------------------- CPU , DOMAIN SMT ---------------------------------------------------------------------------------------------------- DESC COUNT1 COUNT2 PCT_CHANG> ----------------------------------------- ------------------------------------------ busy_lb_count : 122, 80 | -34.43> busy_lb_balanced : 115, 76 | -33.91> busy_lb_failed : 1, 3 | 200.00> busy_lb_imbalance_load : 35, 49 | 40.00> busy_lb_imbalance_util : 0, 0 | 0.00> busy_lb_imbalance_task : 0, 0 | 0.00> busy_lb_imbalance_misfit : 0, 0 | 0.00> busy_lb_gained : 7, 2 | -71.43> busy_lb_hot_gained : 0, 0 | 0.00> busy_lb_nobusyq : 0, 0 | 0.00> busy_lb_nobusyg : 115, 76 | -33.91> *busy_lb_success_count : 6, 1 | -83.33> *busy_lb_avg_pulled : 1.17, 2.00 | 71.43> ----------------------------------------- ------------------------------------------ idle_lb_count : 568, 620 | 9.15> idle_lb_balanced : 462, 449 | -2.81> idle_lb_failed : 11, 21 | 90.91> idle_lb_imbalance_load : 0, 0 | 0.00> idle_lb_imbalance_util : 0, 0 | 0.00> idle_lb_imbalance_task : 115, 189 | 64.35> idle_lb_imbalance_misfit : 0, 0 | 0.00> idle_lb_gained : 103, 169 | 64.08> idle_lb_hot_gained : 0, 0 | 0.00> idle_lb_nobusyq : 0, 0 | 0.00> idle_lb_nobusyg : 462, 449 | -2.81> *idle_lb_success_count : 95, 150 | 57.89> *idle_lb_avg_pulled : 1.08, 1.13 | 3.92> ---------------------------------------- ---------------------------------------- newidle_lb_count : 16961, 3155 | -81.40> newidle_lb_balanced : 15646, 2556 | -83.66> newidle_lb_failed : 397, 142 | -64.23> newidle_lb_imbalance_load : 0, 0 | 0.00> newidle_lb_imbalance_util : 0, 0 | 0.00> newidle_lb_imbalance_task : 1376, 655 | -52.40> newidle_lb_imbalance_misfit : 0, 0 | 0.00> newidle_lb_gained : 917, 457 | -50.16> newidle_lb_hot_gained : 0, 0 | 0.00> newidle_lb_nobusyq : 3, 1 | -66.67> newidle_lb_nobusyg : 14480, 2103 | -85.48> *newidle_lb_success_count : 918, 457 | -50.22> *newidle_lb_avg_pulled : 1.00, 1.00 | 0.11> --------------------------------- --------------------------------- alb_count : 0, 1 | 0.00> alb_failed : 0, 0 | 0.00> alb_pushed : 0, 1 | 0.00> --------------------------------- ---------------------------------- sbe_count : 0, 0 | 0.00> sbe_balanced : 0, 0 | 0.00> sbe_pushed : 0, 0 | 0.00> --------------------------------- ---------------------------------- sbf_count : 0, 0 | 0.00> sbf_balanced : 0, 0 | 0.00> sbf_pushed : 0, 0 | 0.00> ------------------------------------------ ------------------------------------------- ttwu_wake_remote : 2031, 2914 | 43.48> ttwu_move_affine : 73, 124 | 69.86> ttwu_move_balance : 0, 0 | 0.00> ---------------------------------------------------------------------------------------------------- {record|latency|map|replay|script} -i, --input= . (: perf.data stdin fifo ) -v, --verbose . ( ) -D, --dump-raw-trace= sched. -f, --force . PERF SCHED LATENCY (OPTIONS FOR PERF SCHED LATENCY) -C, --CPU (CPU) . -p, --pids (latency) pid . -s, --sort (): runtime switch avg max "avg ,max ,switch ,runtime" . PERF SCHED MAP (OPTIONS FOR PERF SCHED MAP) --compact . . --cpus CPU . --color-cpus CPU . --color-pids pid . --task-name () . ( ) . sched-out *- () . (- . idle ). --fuzzy-name () ( ). PERF SCHED TIMEHIST (OPTIONS FOR PERF SCHED TIMEHIST) -k, --vmlinux= vmlinux --kallsyms= kallsyms -g, --call-graph (call chains) ( ). --max-stack backtrace . -C=, --cpu= CPU() ( ). -p=, --pid= (PID) ( ). -t=, --tid= (TID) ( ). -s, --summary ( ) . -S, --with-summary ( ) . --symfs= . (layout) hierarchy ( ) flat ( ) . . -V, --cpu-visual sched CPU: i (idle) s . -w, --wakeups (wakeups). -M, --migrations (migrations). -n, --next (next task). -I, --idle-hist (idle). --time : ,. . . ( ,x.y ) . ( x.y, ) . --state (switch out). --show-prio . --prio () . : 0,120. - : 120-129. : 0,120-129. -P, --pre-migrations (pre-migration wait time). runqueue runqueue . sched_wakeup migrate_task . PERF SCHED REPLAY (OPTIONS FOR PERF SCHED REPLAY) -r, --repeat (workload) n (0: ). 10 . (SEE ALSO) perf-record(1) perf 09/04/2026 PERF-SCHED(1)