diff options
Diffstat (limited to 'include/linux/kernel_stat.h')
| -rw-r--r-- | include/linux/kernel_stat.h | 36 | 
1 files changed, 22 insertions, 14 deletions
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h index 0cce2db580c..2fbd9053c2d 100644 --- a/include/linux/kernel_stat.h +++ b/include/linux/kernel_stat.h @@ -6,6 +6,7 @@  #include <linux/percpu.h>  #include <linux/cpumask.h>  #include <linux/interrupt.h> +#include <linux/sched.h>  #include <asm/irq.h>  #include <asm/cputime.h> @@ -15,21 +16,25 @@   * used by rstatd/perfmeter   */ -struct cpu_usage_stat { -	cputime64_t user; -	cputime64_t nice; -	cputime64_t system; -	cputime64_t softirq; -	cputime64_t irq; -	cputime64_t idle; -	cputime64_t iowait; -	cputime64_t steal; -	cputime64_t guest; -	cputime64_t guest_nice; +enum cpu_usage_stat { +	CPUTIME_USER, +	CPUTIME_NICE, +	CPUTIME_SYSTEM, +	CPUTIME_SOFTIRQ, +	CPUTIME_IRQ, +	CPUTIME_IDLE, +	CPUTIME_IOWAIT, +	CPUTIME_STEAL, +	CPUTIME_GUEST, +	CPUTIME_GUEST_NICE, +	NR_STATS, +}; + +struct kernel_cpustat { +	u64 cpustat[NR_STATS];  };  struct kernel_stat { -	struct cpu_usage_stat	cpustat;  #ifndef CONFIG_GENERIC_HARDIRQS         unsigned int irqs[NR_IRQS];  #endif @@ -38,10 +43,13 @@ struct kernel_stat {  };  DECLARE_PER_CPU(struct kernel_stat, kstat); +DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat); -#define kstat_cpu(cpu)	per_cpu(kstat, cpu)  /* Must have preemption disabled for this to be meaningful. */ -#define kstat_this_cpu	__get_cpu_var(kstat) +#define kstat_this_cpu (&__get_cpu_var(kstat)) +#define kcpustat_this_cpu (&__get_cpu_var(kernel_cpustat)) +#define kstat_cpu(cpu) per_cpu(kstat, cpu) +#define kcpustat_cpu(cpu) per_cpu(kernel_cpustat, cpu)  extern unsigned long long nr_context_switches(void);  |