mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-25 08:02:56 +00:00
sched/accounting: Change cpustat fields to an array
This patch changes fields in cpustat from a structure, to an u64 array. Math gets easier, and the code is more flexible. Signed-off-by: Glauber Costa <glommer@parallels.com> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Paul Tuner <pjt@google.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1322498719-2255-2-git-send-email-glommer@parallels.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
786d6dc7ae
commit
3292beb340
9 changed files with 142 additions and 141 deletions
|
@ -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);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue