xref: /linux-6.15/include/linux/sched/stat.h (revision 8fc2858e)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
203441a34SIngo Molnar #ifndef _LINUX_SCHED_STAT_H
303441a34SIngo Molnar #define _LINUX_SCHED_STAT_H
403441a34SIngo Molnar 
5dc199539SIngo Molnar #include <linux/percpu.h>
6c5895d3fSPeter Zijlstra #include <linux/kconfig.h>
703441a34SIngo Molnar 
83605df49SIngo Molnar /*
93605df49SIngo Molnar  * Various counters maintained by the scheduler and fork(),
103605df49SIngo Molnar  * exposed via /proc, sys.c or used by drivers via these APIs.
113605df49SIngo Molnar  *
12dfcb245eSIngo Molnar  * ( Note that all these values are acquired without locking,
133605df49SIngo Molnar  *   so they can only be relied on in narrow circumstances. )
143605df49SIngo Molnar  */
153605df49SIngo Molnar 
163605df49SIngo Molnar extern unsigned long total_forks;
173605df49SIngo Molnar extern int nr_threads;
183605df49SIngo Molnar DECLARE_PER_CPU(unsigned long, process_counts);
193605df49SIngo Molnar extern int nr_processes(void);
2001aee8fdSAlexey Dobriyan extern unsigned int nr_running(void);
213605df49SIngo Molnar extern bool single_task_running(void);
2297455168SAlexey Dobriyan extern unsigned int nr_iowait(void);
23*8fc2858eSAlexey Dobriyan extern unsigned int nr_iowait_cpu(int cpu);
243605df49SIngo Molnar 
sched_info_on(void)25a2d7a746SIngo Molnar static inline int sched_info_on(void)
26a2d7a746SIngo Molnar {
27c5895d3fSPeter Zijlstra 	return IS_ENABLED(CONFIG_SCHED_INFO);
28a2d7a746SIngo Molnar }
29a2d7a746SIngo Molnar 
30a2d7a746SIngo Molnar #ifdef CONFIG_SCHEDSTATS
31a2d7a746SIngo Molnar void force_schedstat_enabled(void);
32a2d7a746SIngo Molnar #endif
33a2d7a746SIngo Molnar 
3403441a34SIngo Molnar #endif /* _LINUX_SCHED_STAT_H */
35