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