Branch data 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 : 819858 : static inline int sched_info_on(void) 25 : : { 26 : : #ifdef CONFIG_SCHEDSTATS 27 [ - + + - : 819858 : return 1; + - ] 28 : : #elif defined(CONFIG_TASK_DELAY_ACCT) 29 : : extern int delayacct_on; 30 : : 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 */