|
@@ -84,10 +84,15 @@ static int loadavg_read_proc(char *page, char **start, off_t off,
|
|
|
{
|
|
|
int a, b, c;
|
|
|
int len;
|
|
|
+ unsigned long seq;
|
|
|
+
|
|
|
+ do {
|
|
|
+ seq = read_seqbegin(&xtime_lock);
|
|
|
+ a = avenrun[0] + (FIXED_1/200);
|
|
|
+ b = avenrun[1] + (FIXED_1/200);
|
|
|
+ c = avenrun[2] + (FIXED_1/200);
|
|
|
+ } while (read_seqretry(&xtime_lock, seq));
|
|
|
|
|
|
- a = avenrun[0] + (FIXED_1/200);
|
|
|
- b = avenrun[1] + (FIXED_1/200);
|
|
|
- c = avenrun[2] + (FIXED_1/200);
|
|
|
len = sprintf(page,"%d.%02d %d.%02d %d.%02d %ld/%d %d\n",
|
|
|
LOAD_INT(a), LOAD_FRAC(a),
|
|
|
LOAD_INT(b), LOAD_FRAC(b),
|