Lines Matching +full:cpu +full:- +full:offset
1 // SPDX-License-Identifier: GPL-2.0
13 prev_wait_start = schedstat_val(stats->wait_start); in __update_stats_wait_start()
16 wait_start -= prev_wait_start; in __update_stats_wait_start()
18 __schedstat_set(stats->wait_start, wait_start); in __update_stats_wait_start()
24 u64 delta = rq_clock(rq) - schedstat_val(stats->wait_start); in __update_stats_wait_end()
33 __schedstat_set(stats->wait_start, delta); in __update_stats_wait_end()
41 __schedstat_set(stats->wait_max, in __update_stats_wait_end()
42 max(schedstat_val(stats->wait_max), delta)); in __update_stats_wait_end()
43 __schedstat_inc(stats->wait_count); in __update_stats_wait_end()
44 __schedstat_add(stats->wait_sum, delta); in __update_stats_wait_end()
45 __schedstat_set(stats->wait_start, 0); in __update_stats_wait_end()
53 sleep_start = schedstat_val(stats->sleep_start); in __update_stats_enqueue_sleeper()
54 block_start = schedstat_val(stats->block_start); in __update_stats_enqueue_sleeper()
57 u64 delta = rq_clock(rq) - sleep_start; in __update_stats_enqueue_sleeper()
62 if (unlikely(delta > schedstat_val(stats->sleep_max))) in __update_stats_enqueue_sleeper()
63 __schedstat_set(stats->sleep_max, delta); in __update_stats_enqueue_sleeper()
65 __schedstat_set(stats->sleep_start, 0); in __update_stats_enqueue_sleeper()
66 __schedstat_add(stats->sum_sleep_runtime, delta); in __update_stats_enqueue_sleeper()
75 u64 delta = rq_clock(rq) - block_start; in __update_stats_enqueue_sleeper()
80 if (unlikely(delta > schedstat_val(stats->block_max))) in __update_stats_enqueue_sleeper()
81 __schedstat_set(stats->block_max, delta); in __update_stats_enqueue_sleeper()
83 __schedstat_set(stats->block_start, 0); in __update_stats_enqueue_sleeper()
84 __schedstat_add(stats->sum_sleep_runtime, delta); in __update_stats_enqueue_sleeper()
85 __schedstat_add(stats->sum_block_runtime, delta); in __update_stats_enqueue_sleeper()
88 if (p->in_iowait) { in __update_stats_enqueue_sleeper()
89 __schedstat_add(stats->iowait_sum, delta); in __update_stats_enqueue_sleeper()
90 __schedstat_inc(stats->iowait_count); in __update_stats_enqueue_sleeper()
111 int cpu; in show_schedstat() local
120 cpu = (unsigned long)(v - 2); in show_schedstat()
121 rq = cpu_rq(cpu); in show_schedstat()
123 /* runqueue-specific stats */ in show_schedstat()
125 "cpu%d %u 0 %u %u %u %u %llu %llu %lu", in show_schedstat()
126 cpu, rq->yld_count, in show_schedstat()
127 rq->sched_count, rq->sched_goidle, in show_schedstat()
128 rq->ttwu_count, rq->ttwu_local, in show_schedstat()
129 rq->rq_cpu_time, in show_schedstat()
130 rq->rq_sched_info.run_delay, rq->rq_sched_info.pcount); in show_schedstat()
134 /* domain-specific stats */ in show_schedstat()
136 for_each_domain(cpu, sd) { in show_schedstat()
139 seq_printf(seq, "domain%d %s %*pb", dcount++, sd->name, in show_schedstat()
143 sd->lb_count[itype], in show_schedstat()
144 sd->lb_balanced[itype], in show_schedstat()
145 sd->lb_failed[itype], in show_schedstat()
146 sd->lb_imbalance_load[itype], in show_schedstat()
147 sd->lb_imbalance_util[itype], in show_schedstat()
148 sd->lb_imbalance_task[itype], in show_schedstat()
149 sd->lb_imbalance_misfit[itype], in show_schedstat()
150 sd->lb_gained[itype], in show_schedstat()
151 sd->lb_hot_gained[itype], in show_schedstat()
152 sd->lb_nobusyq[itype], in show_schedstat()
153 sd->lb_nobusyg[itype]); in show_schedstat()
157 sd->alb_count, sd->alb_failed, sd->alb_pushed, in show_schedstat()
158 sd->sbe_count, sd->sbe_balanced, sd->sbe_pushed, in show_schedstat()
159 sd->sbf_count, sd->sbf_balanced, sd->sbf_pushed, in show_schedstat()
160 sd->ttwu_wake_remote, sd->ttwu_move_affine, in show_schedstat()
161 sd->ttwu_move_balance); in show_schedstat()
171 * This means 2 is cpu 0.
172 * In a hotplugged system some CPUs, including cpu 0, may be missing so we have
175 static void *schedstat_start(struct seq_file *file, loff_t *offset) in schedstat_start() argument
177 unsigned long n = *offset; in schedstat_start()
182 n--; in schedstat_start()
185 n = cpumask_next(n - 1, cpu_online_mask); in schedstat_start()
189 *offset = n + 1; in schedstat_start()
197 static void *schedstat_next(struct seq_file *file, void *data, loff_t *offset) in schedstat_next() argument
199 (*offset)++; in schedstat_next()
201 return schedstat_start(file, offset); in schedstat_next()