aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2007-02-08 08:21:58 +0000
committerMike Frysinger <vapier@gentoo.org>2007-02-08 08:21:58 +0000
commit0aa6ba5d44af32d0bf460c8d92cda686bae64c92 (patch)
tree72424e60f565c397b8a2b10f88855f11b46c4010 /libbb
parent4423e5beefd6f17dfa836211899ee70edcc64a5b (diff)
downloadbusybox-w32-0aa6ba5d44af32d0bf460c8d92cda686bae64c92.tar.gz
busybox-w32-0aa6ba5d44af32d0bf460c8d92cda686bae64c92.tar.bz2
busybox-w32-0aa6ba5d44af32d0bf460c8d92cda686bae64c92.zip
make sure ps/top output what they claim: vsz, not rss ... down the line we should make the output controllable either at runtime or buildtime as both statistics are quite useful
Diffstat (limited to 'libbb')
-rw-r--r--libbb/procps.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/libbb/procps.c b/libbb/procps.c
index e7635e5f4..c9dcfde0c 100644
--- a/libbb/procps.c
+++ b/libbb/procps.c
@@ -127,7 +127,7 @@ procps_status_t* procps_scan(procps_status_t* sp, int flags)
127 * ("continue" would mean that current /proc/NNN 127 * ("continue" would mean that current /proc/NNN
128 * is not a valid process info) */ 128 * is not a valid process info) */
129 129
130 memset(&sp->rss, 0, sizeof(*sp) - offsetof(procps_status_t, rss)); 130 memset(&sp->vsz, 0, sizeof(*sp) - offsetof(procps_status_t, vsz));
131 131
132 sp->pid = pid; 132 sp->pid = pid;
133 if (!(flags & ~PSSCAN_PID)) break; 133 if (!(flags & ~PSSCAN_PID)) break;
@@ -164,17 +164,16 @@ procps_status_t* procps_scan(procps_status_t* sp, int flags)
164 "%*s %*s %*s " /* cutime, cstime, priority */ 164 "%*s %*s %*s " /* cutime, cstime, priority */
165 "%ld " /* nice */ 165 "%ld " /* nice */
166 "%*s %*s %*s " /* timeout, it_real_value, start_time */ 166 "%*s %*s %*s " /* timeout, it_real_value, start_time */
167 "%*s " /* vsize */ 167 "%lu ", /* vsize */
168 "%lu", /* rss */
169 sp->state, &sp->ppid, 168 sp->state, &sp->ppid,
170 &sp->pgid, &sp->sid, 169 &sp->pgid, &sp->sid,
171 &sp->utime, &sp->stime, 170 &sp->utime, &sp->stime,
172 &tasknice, 171 &tasknice,
173 &sp->rss); 172 &sp->vsz);
174 if (n != 8) 173 if (n != 8)
175 break; 174 break;
176 175
177 if (sp->rss == 0 && sp->state[0] != 'Z') 176 if (sp->vsz == 0 && sp->state[0] != 'Z')
178 sp->state[1] = 'W'; 177 sp->state[1] = 'W';
179 else 178 else
180 sp->state[1] = ' '; 179 sp->state[1] = ' ';
@@ -185,11 +184,7 @@ procps_status_t* procps_scan(procps_status_t* sp, int flags)
185 else 184 else
186 sp->state[2] = ' '; 185 sp->state[2] = ' ';
187 186
188#ifdef PAGE_SHIFT 187 sp->vsz >>= 10; /* vsize is in bytes and we want kb */
189 sp->rss <<= (PAGE_SHIFT - 10); /* 2**10 = 1kb */
190#else
191 sp->rss *= (getpagesize() >> 10); /* 2**10 = 1kb */
192#endif
193 } 188 }
194 189
195 if (flags & PSSCAN_CMD) { 190 if (flags & PSSCAN_CMD) {
@@ -230,7 +225,6 @@ procps_status_t* procps_scan(procps_status_t* sp, int flags)
230 tty_pgrp, 225 tty_pgrp,
231 task->flags, 226 task->flags,
232 min_flt, 227 min_flt,
233
234 cmin_flt, 228 cmin_flt,
235 maj_flt, 229 maj_flt,
236 cmaj_flt, 230 cmaj_flt,