root/fs/proc/loadavg.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. loadavg_proc_show
  2. proc_loadavg_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include <linux/fs.h>
   3 #include <linux/init.h>
   4 #include <linux/pid_namespace.h>
   5 #include <linux/proc_fs.h>
   6 #include <linux/sched.h>
   7 #include <linux/sched/loadavg.h>
   8 #include <linux/sched/stat.h>
   9 #include <linux/seq_file.h>
  10 #include <linux/seqlock.h>
  11 #include <linux/time.h>
  12 
  13 static int loadavg_proc_show(struct seq_file *m, void *v)
  14 {
  15         unsigned long avnrun[3];
  16 
  17         get_avenrun(avnrun, FIXED_1/200, 0);
  18 
  19         seq_printf(m, "%lu.%02lu %lu.%02lu %lu.%02lu %ld/%d %d\n",
  20                 LOAD_INT(avnrun[0]), LOAD_FRAC(avnrun[0]),
  21                 LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]),
  22                 LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]),
  23                 nr_running(), nr_threads,
  24                 idr_get_cursor(&task_active_pid_ns(current)->idr) - 1);
  25         return 0;
  26 }
  27 
  28 static int __init proc_loadavg_init(void)
  29 {
  30         proc_create_single("loadavg", 0, NULL, loadavg_proc_show);
  31         return 0;
  32 }
  33 fs_initcall(proc_loadavg_init);

/* [<][>][^][v][top][bottom][index][help] */