cregit-Linux how code gets into the kernel

Release 4.12 include/linux/kernel_stat.h

Directory: include/linux
#ifndef _LINUX_KERNEL_STAT_H

#define _LINUX_KERNEL_STAT_H

#include <linux/smp.h>
#include <linux/threads.h>
#include <linux/percpu.h>
#include <linux/cpumask.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/vtime.h>
#include <asm/irq.h>

/*
 * 'kernel_stat.h' contains the definitions needed for doing
 * some kernel statistics (CPU usage, context switches ...),
 * used by rstatd/perfmeter
 */


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 {
	
unsigned long irqs_sum;
	
unsigned int softirqs[NR_SOFTIRQS];
};

DECLARE_PER_CPU(struct kernel_stat, kstat);
DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat);

/* Must have preemption disabled for this to be meaningful. */

#define kstat_this_cpu this_cpu_ptr(&kstat)

#define kcpustat_this_cpu this_cpu_ptr(&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);

extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu);
extern void kstat_incr_irq_this_cpu(unsigned int irq);


static inline void kstat_incr_softirqs_this_cpu(unsigned int irq) { __this_cpu_inc(kstat.softirqs[irq]); }

Contributors

PersonTokensPropCommitsCommitProp
Keika Kobayashi1780.95%150.00%
Eric Dumazet419.05%150.00%
Total21100.00%2100.00%


static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu) { return kstat_cpu(cpu).softirqs[irq]; }

Contributors

PersonTokensPropCommitsCommitProp
Keika Kobayashi26100.00%1100.00%
Total26100.00%1100.00%

/* * Number of interrupts per specific IRQ source, since bootup */ extern unsigned int kstat_irqs(unsigned int irq); extern unsigned int kstat_irqs_usr(unsigned int irq); /* * Number of interrupts per cpu, since bootup */
static inline unsigned int kstat_cpu_irqs_sum(unsigned int cpu) { return kstat_cpu(cpu).irqs_sum; }

Contributors

PersonTokensPropCommitsCommitProp
Kamezawa Hiroyuki20100.00%1100.00%
Total20100.00%1100.00%

extern void account_user_time(struct task_struct *, u64); extern void account_guest_time(struct task_struct *, u64); extern void account_system_time(struct task_struct *, int, u64); extern void account_system_index_time(struct task_struct *, u64, enum cpu_usage_stat); extern void account_steal_time(u64); extern void account_idle_time(u64); #ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
static inline void account_process_tick(struct task_struct *tsk, int user) { vtime_flush(tsk); }

Contributors

PersonTokensPropCommitsCommitProp
Frédéric Weisbecker20100.00%2100.00%
Total20100.00%2100.00%

#else extern void account_process_tick(struct task_struct *, int user); #endif extern void account_idle_ticks(unsigned long ticks); #endif /* _LINUX_KERNEL_STAT_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Frédéric Weisbecker5916.53%1028.57%
Glauber de Oliveira Costa5515.41%12.86%
Keika Kobayashi5314.85%12.86%
Martin Schwidefsky4211.76%25.71%
Kamezawa Hiroyuki359.80%25.71%
Linus Torvalds (pre-git)236.44%617.14%
Andrew Morton236.44%25.71%
Thomas Gleixner174.76%25.71%
Yinghai Lu154.20%25.71%
Michael Neuling143.92%12.86%
Linus Torvalds82.24%12.86%
Alan Mayer51.40%12.86%
Eric Dumazet41.12%12.86%
Christoph Lameter20.56%12.86%
Ryota Ozaki10.28%12.86%
Frank Mayhar10.28%12.86%
Total357100.00%35100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.