brintos

brintos / linux-shallow public Read only

0
0
Text · 963 B · 817981e Raw
38 lines · c
1// SPDX-License-Identifier: GPL-2.02#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#include "internal.h"13 14static int loadavg_proc_show(struct seq_file *m, void *v)15{16	unsigned long avnrun[3];17 18	get_avenrun(avnrun, FIXED_1/200, 0);19 20	seq_printf(m, "%lu.%02lu %lu.%02lu %lu.%02lu %u/%d %d\n",21		LOAD_INT(avnrun[0]), LOAD_FRAC(avnrun[0]),22		LOAD_INT(avnrun[1]), LOAD_FRAC(avnrun[1]),23		LOAD_INT(avnrun[2]), LOAD_FRAC(avnrun[2]),24		nr_running(), nr_threads,25		idr_get_cursor(&task_active_pid_ns(current)->idr) - 1);26	return 0;27}28 29static int __init proc_loadavg_init(void)30{31	struct proc_dir_entry *pde;32 33	pde = proc_create_single("loadavg", 0, NULL, loadavg_proc_show);34	pde_make_permanent(pde);35	return 0;36}37fs_initcall(proc_loadavg_init);38