xref: /linux/tools/lib/perf/include/perf/schedstat-v16.h (revision c7decec2f2d2ab0366567f9e30c0e1418cece43f)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #ifdef CPU_FIELD
4 CPU_FIELD(__u32, yld_count, "sched_yield() count",
5 	  "%11u", false, yld_count, v16);
6 CPU_FIELD(__u32, array_exp, "Legacy counter can be ignored",
7 	  "%11u", false, array_exp, v16);
8 CPU_FIELD(__u32, sched_count, "schedule() called",
9 	  "%11u", false, sched_count, v16);
10 CPU_FIELD(__u32, sched_goidle, "schedule() left the processor idle",
11 	  "%11u", true, sched_count, v16);
12 CPU_FIELD(__u32, ttwu_count, "try_to_wake_up() was called",
13 	  "%11u", false, ttwu_count, v16);
14 CPU_FIELD(__u32, ttwu_local, "try_to_wake_up() was called to wake up the local cpu",
15 	  "%11u", true, ttwu_count, v16);
16 CPU_FIELD(__u64, rq_cpu_time, "total runtime by tasks on this processor (in jiffies)",
17 	  "%11llu", false, rq_cpu_time, v16);
18 CPU_FIELD(__u64, run_delay, "total waittime by tasks on this processor (in jiffies)",
19 	  "%11llu", true, rq_cpu_time, v16);
20 CPU_FIELD(__u64, pcount, "total timeslices run on this cpu",
21 	  "%11llu", false, pcount, v16);
22 #endif /* CPU_FIELD */
23 
24 #ifdef DOMAIN_FIELD
25 #ifdef DOMAIN_CATEGORY
26 DOMAIN_CATEGORY(" <Category busy> ");
27 #endif
28 DOMAIN_FIELD(__u32, busy_lb_count,
29 	     "load_balance() count on cpu busy", "%11u", true, v16);
30 DOMAIN_FIELD(__u32, busy_lb_balanced,
31 	     "load_balance() found balanced on cpu busy", "%11u", true, v16);
32 DOMAIN_FIELD(__u32, busy_lb_failed,
33 	     "load_balance() move task failed on cpu busy", "%11u", true, v16);
34 DOMAIN_FIELD(__u32, busy_lb_imbalance,
35 	     "imbalance sum on cpu busy", "%11u", false, v16);
36 DOMAIN_FIELD(__u32, busy_lb_gained,
37 	     "pull_task() count on cpu busy", "%11u", false, v16);
38 DOMAIN_FIELD(__u32, busy_lb_hot_gained,
39 	     "pull_task() when target task was cache-hot on cpu busy", "%11u", false, v16);
40 DOMAIN_FIELD(__u32, busy_lb_nobusyq,
41 	     "load_balance() failed to find busier queue on cpu busy", "%11u", true, v16);
42 DOMAIN_FIELD(__u32, busy_lb_nobusyg,
43 	     "load_balance() failed to find busier group on cpu busy", "%11u", true, v16);
44 #ifdef DERIVED_CNT_FIELD
45 DERIVED_CNT_FIELD(busy_lb_success_count, "load_balance() success count on cpu busy", "%11u",
46 		  busy_lb_count, busy_lb_balanced, busy_lb_failed, v16);
47 #endif
48 #ifdef DERIVED_AVG_FIELD
49 DERIVED_AVG_FIELD(busy_lb_avg_pulled,
50 		  "avg task pulled per successful lb attempt (cpu busy)", "%11.2Lf",
51 		  busy_lb_count, busy_lb_balanced, busy_lb_failed, busy_lb_gained, v16);
52 #endif
53 #ifdef DOMAIN_CATEGORY
54 DOMAIN_CATEGORY(" <Category idle> ");
55 #endif
56 DOMAIN_FIELD(__u32, idle_lb_count,
57 	     "load_balance() count on cpu idle", "%11u", true, v16);
58 DOMAIN_FIELD(__u32, idle_lb_balanced,
59 	     "load_balance() found balanced on cpu idle", "%11u", true, v16);
60 DOMAIN_FIELD(__u32, idle_lb_failed,
61 	     "load_balance() move task failed on cpu idle", "%11u", true, v16);
62 DOMAIN_FIELD(__u32, idle_lb_imbalance,
63 	     "imbalance sum on cpu idle", "%11u", false, v16);
64 DOMAIN_FIELD(__u32, idle_lb_gained,
65 	     "pull_task() count on cpu idle", "%11u", false, v16);
66 DOMAIN_FIELD(__u32, idle_lb_hot_gained,
67 	     "pull_task() when target task was cache-hot on cpu idle", "%11u", false, v16);
68 DOMAIN_FIELD(__u32, idle_lb_nobusyq,
69 	     "load_balance() failed to find busier queue on cpu idle", "%11u", true, v16);
70 DOMAIN_FIELD(__u32, idle_lb_nobusyg,
71 	     "load_balance() failed to find busier group on cpu idle", "%11u", true, v16);
72 #ifdef DERIVED_CNT_FIELD
73 DERIVED_CNT_FIELD(idle_lb_success_count, "load_balance() success count on cpu idle", "%11u",
74 		  idle_lb_count, idle_lb_balanced, idle_lb_failed, v16);
75 #endif
76 #ifdef DERIVED_AVG_FIELD
77 DERIVED_AVG_FIELD(idle_lb_avg_pulled,
78 		  "avg task pulled per successful lb attempt (cpu idle)", "%11.2Lf",
79 		  idle_lb_count, idle_lb_balanced, idle_lb_failed, idle_lb_gained, v16);
80 #endif
81 #ifdef DOMAIN_CATEGORY
82 DOMAIN_CATEGORY(" <Category newidle> ");
83 #endif
84 DOMAIN_FIELD(__u32, newidle_lb_count,
85 	     "load_balance() count on cpu newly idle", "%11u", true, v16);
86 DOMAIN_FIELD(__u32, newidle_lb_balanced,
87 	     "load_balance() found balanced on cpu newly idle", "%11u", true, v16);
88 DOMAIN_FIELD(__u32, newidle_lb_failed,
89 	     "load_balance() move task failed on cpu newly idle", "%11u", true, v16);
90 DOMAIN_FIELD(__u32, newidle_lb_imbalance,
91 	     "imbalance sum on cpu newly idle", "%11u", false, v16);
92 DOMAIN_FIELD(__u32, newidle_lb_gained,
93 	     "pull_task() count on cpu newly idle", "%11u", false, v16);
94 DOMAIN_FIELD(__u32, newidle_lb_hot_gained,
95 	     "pull_task() when target task was cache-hot on cpu newly idle", "%11u", false, v16);
96 DOMAIN_FIELD(__u32, newidle_lb_nobusyq,
97 	     "load_balance() failed to find busier queue on cpu newly idle", "%11u", true, v16);
98 DOMAIN_FIELD(__u32, newidle_lb_nobusyg,
99 	     "load_balance() failed to find busier group on cpu newly idle", "%11u", true, v16);
100 #ifdef DERIVED_CNT_FIELD
101 DERIVED_CNT_FIELD(newidle_lb_success_count,
102 		  "load_balance() success count on cpu newly idle", "%11u",
103 		  newidle_lb_count, newidle_lb_balanced, newidle_lb_failed, v16);
104 #endif
105 #ifdef DERIVED_AVG_FIELD
106 DERIVED_AVG_FIELD(newidle_lb_avg_count,
107 		  "avg task pulled per successful lb attempt (cpu newly idle)", "%11.2Lf",
108 		  newidle_lb_count, newidle_lb_balanced, newidle_lb_failed, newidle_lb_gained, v16);
109 #endif
110 #ifdef DOMAIN_CATEGORY
111 DOMAIN_CATEGORY(" <Category active_load_balance()> ");
112 #endif
113 DOMAIN_FIELD(__u32, alb_count,
114 	     "active_load_balance() count", "%11u", false, v16);
115 DOMAIN_FIELD(__u32, alb_failed,
116 	     "active_load_balance() move task failed", "%11u", false, v16);
117 DOMAIN_FIELD(__u32, alb_pushed,
118 	     "active_load_balance() successfully moved a task", "%11u", false, v16);
119 #ifdef DOMAIN_CATEGORY
120 DOMAIN_CATEGORY(" <Category sched_balance_exec()> ");
121 #endif
122 DOMAIN_FIELD(__u32, sbe_count,
123 	     "sbe_count is not used", "%11u", false, v16);
124 DOMAIN_FIELD(__u32, sbe_balanced,
125 	     "sbe_balanced is not used", "%11u", false, v16);
126 DOMAIN_FIELD(__u32, sbe_pushed,
127 	     "sbe_pushed is not used", "%11u", false, v16);
128 #ifdef DOMAIN_CATEGORY
129 DOMAIN_CATEGORY(" <Category sched_balance_fork()> ");
130 #endif
131 DOMAIN_FIELD(__u32, sbf_count,
132 	     "sbf_count is not used", "%11u", false, v16);
133 DOMAIN_FIELD(__u32, sbf_balanced,
134 	     "sbf_balanced is not used", "%11u", false, v16);
135 DOMAIN_FIELD(__u32, sbf_pushed,
136 	     "sbf_pushed is not used", "%11u", false, v16);
137 #ifdef DOMAIN_CATEGORY
138 DOMAIN_CATEGORY(" <Wakeup Info> ");
139 #endif
140 DOMAIN_FIELD(__u32, ttwu_wake_remote,
141 	     "try_to_wake_up() awoke a task that last ran on a diff cpu", "%11u", false, v16);
142 DOMAIN_FIELD(__u32, ttwu_move_affine,
143 	     "try_to_wake_up() moved task because cache-cold on own cpu", "%11u", false, v16);
144 DOMAIN_FIELD(__u32, ttwu_move_balance,
145 	     "try_to_wake_up() started passive balancing", "%11u", false, v16);
146 #endif /* DOMAIN_FIELD */
147