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()
173 void z_sched_thread_usage(struct k_thread *thread, in z_sched_thread_usage() argument
183 if (thread == cpu->current) { in z_sched_thread_usage()
194 if (thread->base.usage.track_usage) { in z_sched_thread_usage()
195 sched_thread_update_usage(thread, cycles); in z_sched_thread_usage()
203 stats->execution_cycles = thread->base.usage.total; in z_sched_thread_usage()
204 stats->total_cycles = thread->base.usage.total; in z_sched_thread_usage()
209 stats->current_cycles = thread->base.usage.current; in z_sched_thread_usage()
210 stats->peak_cycles = thread->base.usage.longest; in z_sched_thread_usage()
212 if (thread->base.usage.num_windows == 0) { in z_sched_thread_usage()
216 thread->base.usage.num_windows; in z_sched_thread_usage()
228 int k_thread_runtime_stats_enable(k_tid_t thread) in k_thread_runtime_stats_enable() argument
232 CHECKIF(thread == NULL) { in k_thread_runtime_stats_enable()
238 if (!thread->base.usage.track_usage) { in k_thread_runtime_stats_enable()
239 thread->base.usage.track_usage = true; in k_thread_runtime_stats_enable()
240 thread->base.usage.num_windows++; in k_thread_runtime_stats_enable()
241 thread->base.usage.current = 0; in k_thread_runtime_stats_enable()
249 int k_thread_runtime_stats_disable(k_tid_t thread) in k_thread_runtime_stats_disable() argument
253 CHECKIF(thread == NULL) { in k_thread_runtime_stats_disable()
260 if (thread->base.usage.track_usage) { in k_thread_runtime_stats_disable()
261 thread->base.usage.track_usage = false; in k_thread_runtime_stats_disable()
263 if (thread == cpu->current) { in k_thread_runtime_stats_disable()
266 sched_thread_update_usage(thread, cycles); in k_thread_runtime_stats_disable()
360 struct k_thread *thread; in z_thread_stats_query() local
362 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_query()
364 z_sched_thread_usage(thread, stats); in z_thread_stats_query()
373 struct k_thread *thread; in z_thread_stats_reset() local
375 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_reset()
383 stats->num_windows = (thread->base.usage.track_usage) ? 1U : 0U; in z_thread_stats_reset()
386 if (thread != _current_cpu->current) { in z_thread_stats_reset()
418 struct k_thread *thread; in z_thread_stats_disable() local
420 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_disable()
422 return k_thread_runtime_stats_disable(thread); in z_thread_stats_disable()
431 struct k_thread *thread; in z_thread_stats_enable() local
433 thread = CONTAINER_OF(obj_core, struct k_thread, obj_core); in z_thread_stats_enable()
435 return k_thread_runtime_stats_enable(thread); in z_thread_stats_enable()