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 | #include <linux/kconfig.h> |
7 | |
8 | /* |
9 | * Various counters maintained by the scheduler and fork(), |
10 | * exposed via /proc, sys.c or used by drivers via these APIs. |
11 | * |
12 | * ( Note that all these values are acquired without locking, |
13 | * so they can only be relied on in narrow circumstances. ) |
14 | */ |
15 | |
16 | extern unsigned long total_forks; |
17 | extern int nr_threads; |
18 | DECLARE_PER_CPU(unsigned long, process_counts); |
19 | extern int nr_processes(void); |
20 | extern unsigned int nr_running(void); |
21 | extern bool single_task_running(void); |
22 | extern unsigned int nr_iowait(void); |
23 | extern unsigned int nr_iowait_cpu(int cpu); |
24 | |
25 | static inline int sched_info_on(void) |
26 | { |
27 | return IS_ENABLED(CONFIG_SCHED_INFO); |
28 | } |
29 | |
30 | #ifdef CONFIG_SCHEDSTATS |
31 | void force_schedstat_enabled(void); |
32 | #endif |
33 | |
34 | #endif /* _LINUX_SCHED_STAT_H */ |
35 | |