patch-2.4.0-test5 linux/fs/proc/proc_misc.c

Next file: linux/fs/qnx4/inode.c
Previous file: linux/fs/partitions/msdos.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test4/linux/fs/proc/proc_misc.c linux/fs/proc/proc_misc.c
@@ -287,18 +287,21 @@
 	int i, len;
 	extern unsigned long total_forks;
 	unsigned long jif = jiffies;
-	unsigned sum = 0;
+	unsigned int sum = 0, user = 0, nice = 0, system = 0;
 	int major, disk;
 
-	for (i = 0 ; i < NR_IRQS ; i++)
-		sum += kstat_irqs(i);
+	for (i = 0 ; i < smp_num_cpus; i++) {
+		int cpu = cpu_logical_map(i), j;
 
-	len = sprintf(page,
-		"cpu  %u %u %u %lu\n",
-		kstat.cpu_user,
-		kstat.cpu_nice,
-		kstat.cpu_system,
-		jif*smp_num_cpus - (kstat.cpu_user + kstat.cpu_nice + kstat.cpu_system));
+		user += kstat.per_cpu_user[cpu];
+		nice += kstat.per_cpu_nice[cpu];
+		system += kstat.per_cpu_system[cpu];
+		for (j = 0 ; j < NR_IRQS ; j++)
+			sum += kstat.irqs[cpu][j];
+	}
+
+	len = sprintf(page, "cpu  %u %u %u %lu\n", user, nice, system,
+		      jif * smp_num_cpus - (user + nice + system));
 	for (i = 0 ; i < smp_num_cpus; i++)
 		len += sprintf(page + len, "cpu%d %u %u %u %lu\n",
 			i,

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)