From: t_jeang Date: Tue, 6 Jan 2009 12:05:56 +0000 (+0000) Subject: imported patch CA-14360-loadavg-not-uninterruptible X-Git-Tag: pci-ignore X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=67459b13600de65b9a8e88e3d162b46ef971edb3;p=xenclient%2Fkernel.git imported patch CA-14360-loadavg-not-uninterruptible --- diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index edebc491..50026457 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c @@ -95,6 +95,23 @@ static int loadavg_read_proc(char *page, char **start, off_t off, return proc_calc_metrics(page, start, off, count, eof, len); } +static int loadavg_not_uninterruptible_read_proc(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + int a, b, c; + int len; + + a = avenrun_not_uninterruptible[0] + (FIXED_1/200); + b = avenrun_not_uninterruptible[1] + (FIXED_1/200); + c = avenrun_not_uninterruptible[2] + (FIXED_1/200); + len = sprintf(page,"%d.%02d %d.%02d %d.%02d %ld/%d %d (not uninterruptible)\n", + LOAD_INT(a), LOAD_FRAC(a), + LOAD_INT(b), LOAD_FRAC(b), + LOAD_INT(c), LOAD_FRAC(c), + nr_running(), nr_threads, last_pid); + return proc_calc_metrics(page, start, off, count, eof, len); +} + static int uptime_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { @@ -660,6 +677,7 @@ void __init proc_misc_init(void) int (*read_proc)(char*,char**,off_t,int,int*,void*); } *p, simple_ones[] = { {"loadavg", loadavg_read_proc}, + {"loadavg_not_uninterruptible", loadavg_not_uninterruptible_read_proc}, {"uptime", uptime_read_proc}, {"meminfo", meminfo_read_proc}, {"version", version_read_proc}, diff --git a/include/linux/sched.h b/include/linux/sched.h index c7502a67..ee07ae3a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -105,6 +105,7 @@ extern int print_fatal_signals; * 11 bit fractions. */ extern unsigned long avenrun[]; /* Load averages */ +extern unsigned long avenrun_not_uninterruptible[]; /* Load averages minus uninterruptible */ #define FSHIFT 11 /* nr of bits of precision */ #define FIXED_1 (1<