hush/patches/top_system_cpu.diff
2004-03-31 11:21:24 +00:00

52 lines
1.7 KiB
Diff

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,