svn commit: trunk/busybox/procps

vda at busybox.net vda at busybox.net
Tue Mar 3 11:55:32 UTC 2009


Author: vda
Date: 2009-03-03 11:55:31 +0000 (Tue, 03 Mar 2009)
New Revision: 25501

Log:
top: make it work again on 2.4 kernels (closes bug 125)



Modified:
   trunk/busybox/procps/top.c


Changeset:
Modified: trunk/busybox/procps/top.c
===================================================================
--- trunk/busybox/procps/top.c	2009-03-03 09:41:15 UTC (rev 25500)
+++ trunk/busybox/procps/top.c	2009-03-03 11:55:31 UTC (rev 25501)
@@ -50,7 +50,9 @@
 } top_status_t;
 
 typedef struct jiffy_counts_t {
-	unsigned long long usr,nic,sys,idle,iowait,irq,softirq,steal;
+	/* Linux 2.4.x has only first four */
+	unsigned long long usr, nic, sys, idle;
+	unsigned long long iowait, irq, softirq, steal;
 	unsigned long long total;
 	unsigned long long busy;
 } jiffy_counts_t;
@@ -179,15 +181,12 @@
 	return 0;
 }
 
-/* NOINLINE so that complier doesn't unfold the call
- * causing multiple copies of the arithmatic instrns
- */
 static NOINLINE int read_cpu_jiffy(FILE *fp, jiffy_counts_t *p_jif)
 {
 #if !ENABLE_FEATURE_TOP_SMP_CPU
-	static const char fmt[] = "cpu %lld %lld %lld %lld %lld %lld %lld %lld";
+	static const char fmt[] = "cpu %llu %llu %llu %llu %llu %llu %llu %llu";
 #else
-	static const char fmt[] = "cp%*s %lld %lld %lld %lld %lld %lld %lld %lld";
+	static const char fmt[] = "cp%*s %llu %llu %llu %llu %llu %llu %llu %llu";
 #endif
 	int ret;
 
@@ -197,7 +196,7 @@
 			&p_jif->usr, &p_jif->nic, &p_jif->sys, &p_jif->idle,
 			&p_jif->iowait, &p_jif->irq, &p_jif->softirq,
 			&p_jif->steal);
-	if (ret > 4) {
+	if (ret >= 4) {
 		p_jif->total = p_jif->usr + p_jif->nic + p_jif->sys + p_jif->idle
 			+ p_jif->iowait + p_jif->irq + p_jif->softirq + p_jif->steal;
 		/* procps 2.x does not count iowait as busy time */



More information about the busybox-cvs mailing list