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 Molnarstatic 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