Lines Matching refs:thread
61 static void sched_thread_update_usage(struct k_thread *thread, uint32_t cycles) in sched_thread_update_usage() argument
63 thread->base.usage.total += cycles; in sched_thread_update_usage()
66 thread->base.usage.current += cycles; in sched_thread_update_usage()
68 if (thread->base.usage.longest < thread->base.usage.current) { in sched_thread_update_usage()
69 thread->base.usage.longest = thread->base.usage.current; in sched_thread_update_usage()
74 void z_sched_usage_start(struct k_thread *thread) in z_sched_usage_start() argument
83 if (thread->base.usage.track_usage) { in z_sched_usage_start()
84 thread->base.usage.num_windows++; in z_sched_usage_start()
85 thread->base.usage.current = 0; in z_sched_usage_start()
172 void z_sched_thread_usage(struct k_thread *thread, in z_sched_thread_usage() argument
182 if (thread == cpu->current) { in z_sched_thread_usage()
193 if (thread->base.usage.track_usage) { in z_sched_thread_usage()
194 sched_thread_update_usage(thread, cycles); in z_sched_thread_usage()
202 stats->execution_cycles = thread->base.usage.total; in z_sched_thread_usage()
203 stats->total_cycles = thread->base.usage.total; in z_sched_thread_usage()
208 stats->current_cycles = thread->base.usage.current; in z_sched_thread_usage()
209 stats->peak_cycles = thread->base.usage.longest; in z_sched_thread_usage()
211 if (thread->base.usage.num_windows == 0) { in z_sched_thread_usage()
215 thread->base.usage.num_windows; in z_sched_thread_usage()
227 int k_thread_runtime_stats_enable(k_tid_t thread) in k_thread_runtime_stats_enable() argument
231 CHECKIF(thread == NULL) { in k_thread_runtime_stats_enable()
237 if (!thread->base.usage.track_usage) { in k_thread_runtime_stats_enable()
238 thread->base.usage.track_usage = true; in k_thread_runtime_stats_enable()
239 thread->base.usage.num_windows++; in k_thread_runtime_stats_enable()
240 thread->base.usage.current = 0; in k_thread_runtime_stats_enable()
248 int k_thread_runtime_stats_disable(k_tid_t thread) in k_thread_runtime_stats_disable() argument
252 CHECKIF(thread == NULL) { in k_thread_runtime_stats_disable()
259 if (thread->base.usage.track_usage) { in k_thread_runtime_stats_disable()
260 thread->base.usage.track_usage = false; in k_thread_runtime_stats_disable()
262 if (thread == cpu->current) { in k_thread_runtime_stats_disable()
265 sched_thread_update_usage(thread, cycles); in k_thread_runtime_stats_disable()
359 struct k_thread *thread; in z_thread_stats_query() local
361 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_query()
363 z_sched_thread_usage(thread, stats); in z_thread_stats_query()
372 struct k_thread *thread; in z_thread_stats_reset() local
374 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_reset()
382 stats->num_windows = (thread->base.usage.track_usage) ? 1U : 0U; in z_thread_stats_reset()
385 if (thread != _current_cpu->current) { in z_thread_stats_reset()
417 struct k_thread *thread; in z_thread_stats_disable() local
419 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_disable()
421 return k_thread_runtime_stats_disable(thread); in z_thread_stats_disable()
430 struct k_thread *thread; in z_thread_stats_enable() local
432 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_enable()
434 return k_thread_runtime_stats_enable(thread); in z_thread_stats_enable()