linux-bk/include/linux/kernel_stat.h
<<
>>
Prefs
   1#ifndef _LINUX_KERNEL_STAT_H
   2#define _LINUX_KERNEL_STAT_H
   3
   4#include <linux/config.h>
   5#include <asm/irq.h>
   6#include <linux/smp.h>
   7#include <linux/threads.h>
   8
   9/*
  10 * 'kernel_stat.h' contains the definitions needed for doing
  11 * some kernel statistics (CPU usage, context switches ...),
  12 * used by rstatd/perfmeter
  13 */
  14
  15#define DK_MAX_MAJOR 16
  16#define DK_MAX_DISK 16
  17
  18struct kernel_stat {
  19        unsigned int per_cpu_user[NR_CPUS],
  20                     per_cpu_nice[NR_CPUS],
  21                     per_cpu_system[NR_CPUS];
  22        unsigned int dk_drive[DK_MAX_MAJOR][DK_MAX_DISK];
  23        unsigned int dk_drive_rio[DK_MAX_MAJOR][DK_MAX_DISK];
  24        unsigned int dk_drive_wio[DK_MAX_MAJOR][DK_MAX_DISK];
  25        unsigned int dk_drive_rblk[DK_MAX_MAJOR][DK_MAX_DISK];
  26        unsigned int dk_drive_wblk[DK_MAX_MAJOR][DK_MAX_DISK];
  27        unsigned int pgpgin, pgpgout;
  28        unsigned int pswpin, pswpout;
  29        unsigned int pgalloc, pgfree;
  30        unsigned int pgactivate, pgdeactivate;
  31        unsigned int pgfault, pgmajfault;
  32        unsigned int pgscan, pgsteal;
  33        unsigned int pageoutrun, allocstall;
  34#if !defined(CONFIG_ARCH_S390)
  35        unsigned int irqs[NR_CPUS][NR_IRQS];
  36#endif
  37};
  38
  39extern struct kernel_stat kstat;
  40
  41extern unsigned long nr_context_switches(void);
  42
  43/*
  44 * Maybe we need to smp-ify kernel_stat some day. It would be nice to do
  45 * that without having to modify all the code that increments the stats.
  46 */
  47#define KERNEL_STAT_INC(x) kstat.x++
  48#define KERNEL_STAT_ADD(x, y) kstat.x += y
  49
  50#if !defined(CONFIG_ARCH_S390)
  51/*
  52 * Number of interrupts per specific IRQ source, since bootup
  53 */
  54static inline int kstat_irqs (int irq)
  55{
  56        int i, sum=0;
  57
  58        for (i = 0 ; i < NR_CPUS ; i++)
  59                sum += kstat.irqs[i][irq];
  60
  61        return sum;
  62}
  63#endif
  64
  65#endif /* _LINUX_KERNEL_STAT_H */
  66
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.