Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0 */ 2 : #ifndef _LINUX_SCHED_STAT_H 3 : #define _LINUX_SCHED_STAT_H 4 : 5 : #include <linux/percpu.h> 6 : 7 : /* 8 : * Various counters maintained by the scheduler and fork(), 9 : * exposed via /proc, sys.c or used by drivers via these APIs. 10 : * 11 : * ( Note that all these values are acquired without locking, 12 : * so they can only be relied on in narrow circumstances. ) 13 : */ 14 : 15 : extern unsigned long total_forks; 16 : extern int nr_threads; 17 : DECLARE_PER_CPU(unsigned long, process_counts); 18 : extern int nr_processes(void); 19 : extern unsigned long nr_running(void); 20 : extern bool single_task_running(void); 21 : extern unsigned long nr_iowait(void); 22 : extern unsigned long nr_iowait_cpu(int cpu); 23 : 24 63671 : static inline int sched_info_on(void) 25 : { 26 : #ifdef CONFIG_SCHEDSTATS 27 : return 1; 28 : #elif defined(CONFIG_TASK_DELAY_ACCT) 29 63671 : extern int delayacct_on; 30 63671 : return delayacct_on; 31 : #else 32 : return 0; 33 : #endif 34 : } 35 : 36 : #ifdef CONFIG_SCHEDSTATS 37 : void force_schedstat_enabled(void); 38 : #endif 39 : 40 : #endif /* _LINUX_SCHED_STAT_H */