diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-02-08 08:21:58 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-02-08 08:21:58 +0000 |
commit | 0aa6ba5d44af32d0bf460c8d92cda686bae64c92 (patch) | |
tree | 72424e60f565c397b8a2b10f88855f11b46c4010 /libbb | |
parent | 4423e5beefd6f17dfa836211899ee70edcc64a5b (diff) | |
download | busybox-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.c | 16 |
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, |