acda6f40d1
This patch contains the following miscellaneous stuff: . The pids_stacks_fetch() routine might call for newly allocated stacks to be itemized. However, that job was already tended to by the pids_stacks_alloc() function. So, this patch just eliminates a redundant invocation. ------------------------------------------------------ . The concept of 'dirty_stacks' has not kept pace with the evolving stacks implementation. Originally, stacks were considered dirty only if free() of dynamic memory was needed before refreshing any single result struct. Later, with the introduction of the 'extra' item and a promise to reset it to zero, 'dirty' was much broader. So, this patch just treats the dirty flg as others do. ------------------------------------------------------ . Lastly, a word or three about performance & timings. Tuning efforts concentrated on the <pids> API and top. And unless an oldlib equivalent to the preceding patch is applied (favoring stat vs. status), newlib top will often outperform the oldlib version (obviously wrong). So assuming /proc/stat is preferred in both libraries, generally speaking, a cpu and elapsed time increase of 1-5% was found for this new stacks oriented interface. Of course, there's also an increased memory footprint. There are some occasions, however, when the newlib top is at a substantial disadvantage. For example if WCHAN or TTY is displayed, such items will be present in all newlib reaped stacks (i.e. every process). But old top would only incur such overhead with displayable tasks. Thus, oldlib top could outperform newlib by up to 25%, for example, if only fields requiring NO library flags were displayed. However, such a scenario is not likely since only GID, UID, PID, TGID & WCHAN would be shown. In the usual case, that overhead associated with WCHAN and/or TTY is overshadowed by other top runtime costs. All in all a pleasing outcome I deem quite acceptable. ------------------------------------------------------ Signed-off-by: Jim Warner <james.warner@comcast.net> |
||
---|---|---|
.. | ||
.gitignore | ||
alloc.c | ||
alloc.h | ||
COPYING | ||
devname.c | ||
devname.h | ||
diskstats.c | ||
diskstats.h | ||
escape.c | ||
escape.h | ||
libprocps.pc.in | ||
libprocps.sym | ||
meminfo.c | ||
meminfo.h | ||
namespace.c | ||
namespace.h | ||
openproc.3 | ||
pids.c | ||
pids.h | ||
procps-private.h | ||
procps.h | ||
pwcache.c | ||
pwcache.h | ||
readproc.3 | ||
readproc.c | ||
readproc.h | ||
readproctab.3 | ||
slabinfo.c | ||
slabinfo.h | ||
stat.c | ||
stat.h | ||
sysinfo.c | ||
sysinfo.h | ||
test_namespace.c | ||
test_pids.c | ||
test_sysinfo.c | ||
test_uptime.c | ||
test_version.c | ||
uptime.c | ||
uptime.h | ||
version.c | ||
version.h | ||
vmstat.c | ||
vmstat.h | ||
wchan.c | ||
wchan.h | ||
xtra-procps-debug.h |