--- /dev/null
+diff -purN busybox.ori/include/libbb.h busybox/include/libbb.h
+--- busybox.ori/include/libbb.h 2004-03-21 14:39:35.000000000 +0100
++++ busybox-1.0/include/libbb.h 2004-03-21 14:45:35.000000000 +0100
+@@ -447,6 +447,7 @@ typedef struct {
+ int ppid;
+ #ifdef FEATURE_CPU_USAGE_PERCENTAGE
+ unsigned pcpu;
++ unsigned pscpu;
+ unsigned long stime, utime;
+ #endif
+ char *cmd;
+diff -purN busybox.ori/procps/top.c busybox/procps/top.c
+--- busybox.ori/procps/top.c 2004-03-21 14:40:09.000000000 +0100
++++ busybox-1.0/procps/top.c 2004-03-21 17:27:52.961951448 +0100
+@@ -289,6 +289,15 @@ static void do_stats(void)
+ i = 999;
+ cur->pcpu = i;
+
++ /*
++ * Calculate percent of system time from cpu time
++ */
++ if (systime != 0) {
++ cur->pscpu = 100 * total_time / systime;
++ } else {
++ cur->pscpu = 0;
++ }
++
+ }
+
+ /*
+@@ -393,7 +402,7 @@ static void display_status(int count, in
+
+ #ifdef FEATURE_CPU_USAGE_PERCENTAGE
+ /* what info of the processes is shown */
+- printf("\n\e[7m PID USER STATUS RSS PPID %%CPU %%MEM COMMAND\e[0m\n");
++ printf("\n\e[7m PID USER STATUS RSS PPID %%CPU %%SCPU %%MEM COMMAND\e[0m\n");
+ #else
+ printf("\n\e[7m PID USER STATUS RSS PPID %%MEM COMMAND\e[0m\n");
+ #endif
+@@ -410,9 +419,9 @@ static void display_status(int count, in
+ else
+ sprintf(rss_str_buf, "%7ld", s->rss);
+ #ifdef FEATURE_CPU_USAGE_PERCENTAGE
+- printf("%5d %-8s %s %s %5d %2d.%d %2u.%u ",
++ printf("%5d %-8s %s %s %5d %2d.%d %2d.%d %2u.%u ",
+ s->pid, s->user, s->state, rss_str_buf, s->ppid,
+- s->pcpu/10, s->pcpu%10, pmem/10, pmem%10);
++ s->pcpu/10, s->pcpu%10,s->pscpu/10, s->pscpu%10, pmem/10, pmem%10);
+ #else
+ printf("%5d %-8s %s %s %5d %2u.%u ",
+ s->pid, s->user, s->state, rss_str_buf, s->ppid,