]> granicus.if.org Git - procps-ng/log
procps-ng
10 years agotop: avoid a 'nan' when the delay interval is very low
Jim Warner [Sun, 27 Apr 2014 05:00:00 +0000 (00:00 -0500)]
top: avoid a 'nan' when the delay interval is very low

The granularity of /proc/uptime is fixed at hundredths
of a second. And, since we can cycle faster than that,
we are exposed to 'nan' when calculating elapsed time.

This commit will protect us from that outcome when the
delay interval has been set to an extremely low value.

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agomisc: fix man doc spelling and grammar for translation
Jim Warner [Wed, 23 Apr 2014 05:00:04 +0000 (00:00 -0500)]
misc: fix man doc spelling and grammar for translation

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agotop: swap opening quotes for back-tics in man document
Jim Warner [Wed, 23 Apr 2014 05:00:03 +0000 (00:00 -0500)]
top: swap opening quotes for back-tics in man document

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agotop: minimize the usage of apostrophes in man document
Jim Warner [Wed, 23 Apr 2014 05:00:02 +0000 (00:00 -0500)]
top: minimize the usage of apostrophes in man document

In addition to eliminating numerous single quote usage
this commit also escaped '\' a few overlooked hyphens.

And some 'unformatted' spacings were adjusted as well.

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agotop: refactor man document so as to allow translations
Jim Warner [Wed, 23 Apr 2014 05:00:01 +0000 (00:00 -0500)]
top: refactor man document so as to allow translations

The majority of changes in this commit are intended to
enable translation of top's man page. There were three
kinds of errors as seen by that po4a-updatepo program.

. a valid but unrecognized request concerning no-break
. an internally defined macro with a groff .de request
. occasional apostrophe at the beginning of some lines

With respect to the apostrophe, some have been changed
to back-tic since line placement could not be assured.
And other parts were re-flowed to avoid temptations to
escape as \' (technically an acute accent). Of course,
the opening back-tic with closing apostrophe looks odd
when ASCII, but should be rendered correctly as UTF-8.

It may yet be necessary to change the remaining single
'opening' quotes to back-tics as translation proceeds.
Should that become necessary, I intend to reduce quote
usage to the bare minimum throughout the man document.

There were also some formatting changes to enhance the
man2html output and then to other formats via htmldoc.
And, I wish to acknowledge that my meager groff skills
do not serve those programs very well at all. In other
words groff yet remains mostly incomprehensible to me.

Lastly a few content plus copyright updates were made.

Message(s):
. Unknown macro '.c2 `'. Remove it from the document, or refer to the Locale::Po4a::Man manpage to see how po4a can handle new macros.
. This page defines a new macro with '.de'. Since po4a is not a real groff parser, this is not supported.
. Unknown macro ''real time' scheduling priority.'. Remove it from the document, or refer to the Locale::Po4a::Man manpage to see how po4a can handle new macros.

Reference(s):
. oriiginal post/patch
http://www.freelists.org/post/procps/Translations-for-man-pages

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agotop: update copyright dates plus 1 preprocessor change
Jim Warner [Fri, 25 Apr 2014 06:00:00 +0000 (00:00 -0600)]
top: update copyright dates plus 1 preprocessor change

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agotop: protect against distortion when system time reset
Jim Warner [Fri, 25 Apr 2014 05:00:00 +0000 (00:00 -0500)]
top: protect against distortion when system time reset

If a system's time is adjusted backwards, then elapsed
time could appear as negative. This yielded a negative
%CPU value. Alternately if zeros were suppressed ('0')
the result was a blank %CPU column. In both cases that
distortion would last for one display cycle or until a
user forced a display refresh via some keyboard input.

The original recommendation was trading gettimeofday()
for clock_gettime() using CLOCK_MONOTONIC. But on some
systems that might not be possible, forcing the use of
CLOCK_REALTIME instead. Not only would that complicate
the build system, but it may leave us with minus %CPU.

Another approach was to ensure that elapsed time could
never be negative. Of course, this produced distortion
of %CPU values but it would be proportionally correct.
This wasn't dissimilar to a distortion already present
should the time be adjusted forward or backward within
any 'remaining' top delay intervals. These aberrations
would be avoided with clock_gettime & CLOCK_MONOTONIC,
but that is a less than ideal solution as noted above.

This final solution, which originated down under, will
simply rely on the /proc/uptime seconds, which will be
immune to *any* tampering with the system clock. Thus,
we now have a fix for the distortion we didn't know we
suffered plus a negative %CPU that began this odyssey.

Thanks to:
sk.alvin.x@gmail.com, for the original effort
jcapik@redhat.com, for a heads up on CLOCK_MONOTONIC
csmall-procps@enc.com.au, for the best suggestion of all

Reference(s):
. original post/patch
http://www.freelists.org/post/procps/PATCH-top-use-clock-gettime-instead-of-gettimeofday
. heads up on CLOCK_MONOTONIC
http://www.freelists.org/post/procps/PATCH-top-use-clock-gettime-instead-of-gettimeofday,2
. the final solution
http://www.freelists.org/post/procps/PATCH-top-use-clock-gettime-instead-of-gettimeofday,11

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agofix url for rsync
Trần Ngọc Quân [Thu, 17 Apr 2014 07:12:01 +0000 (14:12 +0700)]
fix url for rsync

Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
10 years agol10n: po/update-potfile: add include/c.h
Trần Ngọc Quân [Wed, 16 Apr 2014 08:56:03 +0000 (15:56 +0700)]
l10n: po/update-potfile: add include/c.h

Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
10 years agosysctl: increase max supported line length of the conf file
Sami Farin [Fri, 14 Mar 2014 06:00:00 +0000 (00:00 -0600)]
sysctl: increase max supported line length of the conf file

I ran into this limit with net.ipv4.ip_local_reserved_ports ,
sysctl complained about the line after the long line, further
slowing down my error hunting.

Due to fgets usage, increase buffer size to 4096 chars with
minimum amount of code changes.

Signed-off-by: Sami Farin <hvtaifwkbgefbaei@gmail.com>
10 years agoMinor i18n fixes
Yuri Chornoivan [Mon, 3 Mar 2014 10:58:56 +0000 (21:58 +1100)]
Minor i18n fixes

Minor fixes that the translator (Yuri) has found in some of the
strings. You only know how many typos and thinkos you have when
someone is trying to translate it.

Signed-off-by: Craig Small <csmall@enc.com.au>
10 years agolibrary: properly handle memory used by tmpfs
Jakob Unterwurzacher [Tue, 18 Feb 2014 21:12:21 +0000 (22:12 +0100)]
library: properly handle memory used by tmpfs

tmpfs has become much more widely used since distributions use it for
/tmp (Fedora 18+). In /proc/meminfo, memory used by tmpfs is accounted
into "Cached" (aka "NR_FILE_PAGES",
 http://lxr.free-electrons.com/source/mm/shmem.c#L301 ).

The tools just pass it on, so what top, free and vmstat report as
"cached" is the sum of page cache and tmpfs.

free has the extremely useful "-/+ buffers/cache" output. However, now
that tmpfs is accounted into "cached", those numbers are way off once
you have big files in /tmp.

Fortunately, kernel 2.6.32 introduces "Shmem", which makes tmpfs memory
usage accessible from userspace (
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4b02108ac1b3354a22b0d83c684797692efdc395 ).

This patch substracts Shmem from Cached to get the actual page cache
memory. This makes both issues mentioned above disappear. For older
kernels, Shmem is not available (hence zero) and this patch is no-op.

Additionally:
* Update the man pages of free and vmstat to explain what is happening
* Finally drop "MemShared" from the /proc/meminfo parser, it has been
  dead for 10+ years and is only causing confusion ( removed in kernel
  2.5.54, see
  https://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/?id=fe04e9451e5a159247cf9f03c615a4273ac0c571 )

10 years agotop: avoid name conflict in the next version of stdlib
Jim Warner [Tue, 25 Feb 2014 06:00:00 +0000 (00:00 -0600)]
top: avoid name conflict in the next version of stdlib

Since its inception top has always used enumerators to
identify displayable fields. They've taken the form of
P_PID, etc. As it turns out, something has changed for
libc6-dev versions beyond 2.17-93 wherein 'P_PID' will
now be exposed via stdlib.h. I have not pinpointed the
exact cause but it may depend on header include order.

This patch just trades top's long standing 'P_' prefix
convention for that of 'EU_' (short for enumerator). I
cannot find *any* header under /usr/include/ currently
utilizing this particular three character combination.

And as a further safeguard top will henceforth include
'system' specific headers after the standard includes.

Reference(s):
http://www.freelists.org/post/procps/top-wont-compile-anymore

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agoAdded get-trans target to Makefile
Craig Small [Sat, 22 Feb 2014 00:34:53 +0000 (11:34 +1100)]
Added get-trans target to Makefile

The get-trans target rsyncs the latest copies of translation files
from the translation project. I put this target in because I always
forget the exact syntax of the command.

Signed-off-by: Craig Small <csmall@enc.com.au>
10 years agotop: restore the former behavior after stderr redirect
Jim Warner [Thu, 20 Feb 2014 06:00:00 +0000 (00:00 -0600)]
top: restore the former behavior after stderr redirect

When top originally responded to the potential libnuma
stderr write, the library was consistently called with
each refresh cycle. That, in turn, guaranteed that any
warning message would be seen at program end by virtue
of: 1) having been issued before the 2nd refresh cycle
and; 2) benefiting from inherited /dev/null buffering.

A later efficiency refactor meant the numa library may
not always be called with every refresh cycle. Rather,
it was only called if top was in one of two numa views
(the '2' or '3' toggles). That, in turn, resulted in a
loss of any warning message at program end unless numa
mode had been preserved in the rcfile. In other words,
if top was started normally then a single cycle stderr
redirect would have long passed by the time the '2' or
'3' toggle was activated. The warning message actually
was spewed but quickly lost to the full screen refresh
which follows all keyboard interactions with the user.

This commit simply moves the restoration of our stderr
redirect to program end (instead of that first display
refresh). Now, any libnuma stderr warning message will
appear as the concluding output line upon quitting top
without regard to when any numa mode view was invoked.

And since this technique might be useful in some other
context (as an example of how to 'buffer' stderr) it's
been generalized with its own #define. But to maximize
its usefulness, the original redirect should be issued
much earlier in pgm startup than top has chosen to do.

Reference(s):
. original libnuma stderr response (msg seen)
commit 35dc6dcc49cc9cf8cff4300cb03a38dbe44c05db
. numa refractoring for efficiency (msg lost)
commit f12c0d5c6e84f9409ac3a73c066841a8ff5aab0b

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agovmstat: Fixing format-security flaws
Jaromir Capik [Wed, 5 Feb 2014 16:09:45 +0000 (17:09 +0100)]
vmstat: Fixing format-security flaws

Previously the headers were printed directly without
the format specifier. That way is considered insecure
and leads to build errors with -Werror=format-security
flag set.

10 years agowatch: Don't leak extra fds to the child
Josh Stone [Tue, 4 Feb 2014 17:46:58 +0000 (09:46 -0800)]
watch: Don't leak extra fds to the child

Once the write side of the pipe has been duped to stdout for the child,
the original pipefd is no longer needed, so it can be closed to avoid
leaking to the child.

The leak can easily be seen with "watch ls -l /proc/self/fd", but I
found this due to "watch lvs" diagnosing itself:

    File descriptor 4 (pipe:[3163616]) leaked on lvs invocation.

Signed-off-by: Josh Stone <jistone@redhat.com>
10 years agovmstat: Support for timestamps with '-t' & fix for '-wd'
Jaromir Capik [Tue, 4 Feb 2014 18:10:42 +0000 (19:10 +0100)]
vmstat: Support for timestamps with '-t' & fix for '-wd'

From now the vmstat can append a timestamp to each line in the
VMSTAT and DISKSTAT mode. You can achieve that with the '-t'
switch.
The '-w' switch now works in the DISKSTAT mode too.

10 years agoUpdate help files
Craig Small [Sun, 2 Feb 2014 07:13:01 +0000 (18:13 +1100)]
Update help files

Benno Schulenberg suggested some changes to the help messages
to provide some consistency and clarity for both the users and
translators of procps.

The test needed to be updated as the pmap output changed too.

Signed-off-by: Craig Small <csmall@enc.com.au>
10 years agoMerge branch 'merge-requests/23'
Craig Small [Thu, 30 Jan 2014 11:12:28 +0000 (22:12 +1100)]
Merge branch 'merge-requests/23'

10 years agopgrep fails to show full command line with -au
Elliott Forney [Thu, 30 Jan 2014 10:36:26 +0000 (21:36 +1100)]
pgrep fails to show full command line with -au

pgrep does not show the full command line when the -a and -u flags are
combined. The -a flag is ignored when the -u flag is used as well.

In addition, the supplied patch by Elliot did not fix the problem
when invert flag ( -v ) was used; a very small tweak to the patch
fixed this problem as well. This problem existed before.

Signed-off-by: Craig Small <csmall@enc.com.au>
10 years agoPID -2 to -9 for kill too
Craig Small [Wed, 29 Jan 2014 11:28:02 +0000 (22:28 +1100)]
PID -2 to -9 for kill too

Commit 4359cf069819d9fb53493933e00d9af5c37bced5 restored kill's ability
to kill PID -1. This however left PIDs -2 to -9 (or rather process
groups 2 to 9) still having this problem. The check is now generically
looking for a digit and parses it correctly.

10 years agoCheck for presence of disks in vmstat
Craig Small [Wed, 29 Jan 2014 11:22:11 +0000 (22:22 +1100)]
Check for presence of disks in vmstat

vmstat -d or vmstat -p would crash mysteriously under different
circumstances. The problem was eventually tracked down to /sys not
being mounted which meant is_disk() always returned false.
The partition would then be attempted to be linked to a non-existent
disk causing a segfault.

vmstat will now not link to a disk if none exists.
The change in testing will skip those tests when /sys/block doesn't
exist.

Many thanks to Daniel Schepler for his analysis and suggestions.

Bug-Debian: http://bugs.debian.org/736628

10 years agokill for PID -1 restored
Craig Small [Tue, 28 Jan 2014 11:35:26 +0000 (22:35 +1100)]
kill for PID -1 restored

Both the man page and the shell builtin kill mention you can
use PID -1, which means nuke everything you can get at.
Alas this "fun" option was missing and the only way to get
around it was with "kill -HUP -- -1".

This small change means kill -HUP -1 is back for all those
destructive types. The error was introduced when the argument
parser was fixed for other problems.

Thanks to Mike for pointing this out.

Signed-off-by: Craig Small <csmall@enc.com.au>
10 years agolibrary: skip replacement of trailing '\0' in read_unvectored()
Jaromir Capik [Fri, 24 Jan 2014 17:07:34 +0000 (18:07 +0100)]
library: skip replacement of trailing '\0' in read_unvectored()

Under some circumstances the ksh shell doesn't fork new processes
when executing scripts and the script is interpreted by the
parent process. That makes the execution faster, but it means
ksh needs to reuse the /proc/PID/cmdline for the new script name
and arguments while the file length needs to stay untouched.
The fork is skipped only when the new cmdline is shorter than
the parent's cmdline and the rest of the file is filled
with '\0'. This is perfectly ok until we try to read the cmdline
of such process. As the read_unvectored() function replaces
all zeros with chosen separator, these trailing zeros are replaced
with spaces in case of the ps tool. Consequently it appends
multiple spaces at the end of the arguments string even when these
zeros do not represent any separators and therefore shouldn't
be replaced.
With this commit the read_unvectored() function skips the
replacement of trailing zeros and separates valid content only.

Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1057600

10 years agovmstat: wide output still not wide enough?
Jaromir Capik [Mon, 20 Jan 2014 18:59:39 +0000 (19:59 +0100)]
vmstat: wide output still not wide enough?

8 digits per memory column is apparently still too low
for systems with 128TB of RAM. Anyway, setting the limit
to 999TB (12 digits) must be sufficient for now as it
produces wide gaps on "regular" computers.
This commit also increases the number of digits per cpu
columns from 2 to 3 as some of them can hit the 100%
maximum in corner cases.

10 years agotop: provide for discontinuous (not active) NUMA nodes
Jim Warner [Sun, 5 Jan 2014 06:00:00 +0000 (00:00 -0600)]
top: provide for discontinuous (not active) NUMA nodes

Apparently there are occasions when NUMA nodes may not
always be contiguous. Under such conditions nodes that
were not used would still occupy precious Summary Area
space showing 100% idle, under the '2' command toggle.

With this commit top will no longer display numa nodes
that have no associated cpu when the '2' toggle is on.
But just in case we wish to return to former behavior,
a new #define called OFF_NUMASKIP has been introduced.

And as an aside, a recent refactor mentioned below set
the stage for this patch to be 'self-tuning'. In other
words, if an inactive/non-displayed node should become
active (if even possible), then top will begin showing
such a node automatically with the next screen update.

Unfortunately, all inactive nodes now 'suppressed' are
still accessible via the '3' command. Those nodes will
just be displayed as empty (no associated cpus shown).
This is not really a top problem but more of a libnuma
and/or user deficiency. The library lacks the means to
validate a node id and the user then input a node that
was not even shown under a '2' toggle Summary display.

( too bad libnuma does not offer an 'is_node_active' )
( type function so top could warn a user when such a )
( discontinuous node was requested using his '3' cmd )

( sure, top could achieve this objective himself but )
( that would require making yet another array global )
( which i'm just not in the mood to do - besides, we )
( have already made enough concessions to libnuma.so )

Lastly, an existing #define (PRETEND_NUMA) was changed
to 'disable' node #1 so as to simulate a discontinuous
node. This allows testing of the '2' and '3' commands.

Reference(s):
http://www.spinics.net/lists/util-linux-ng/msg08671.html
. set stage for self tuning
commit f12c0d5c6e84f9409ac3a73c066841a8ff5aab0b

Signed-off-by: Jim Warner <james.warner@comcast.net>
10 years agops: ignore SIGCONT
Craig Small [Tue, 14 Jan 2014 11:23:58 +0000 (22:23 +1100)]
ps: ignore SIGCONT

SIGCONT is a continue signal.  It seems that some zsh setups can send
this signal, causing ps to abort.  This is not what "continue" means.
This change just uses the default handler which will continue a stopped
process.

References:
  http://bugs.debian.org/732410
  http://www.zsh.org/cgi-bin/mla/redirect?WORKERNUMBER=32251

Signed-off-by: Craig Small <csmall@enc.com.au>
10 years agosysctl: Fixing memory leaks in PreloadSystem()
Jaromir Capik [Thu, 2 Jan 2014 18:49:36 +0000 (19:49 +0100)]
sysctl: Fixing memory leaks in PreloadSystem()

10 years agopgrep: Fixing memory leak in do_regcomp()
Jaromir Capik [Thu, 2 Jan 2014 17:39:27 +0000 (18:39 +0100)]
pgrep: Fixing memory leak in do_regcomp()

10 years agolibrary: fixing uninitialized variable 'pos' in whattime.c
Jaromir Capik [Thu, 2 Jan 2014 17:21:31 +0000 (18:21 +0100)]
library: fixing uninitialized variable 'pos' in whattime.c

11 years agoSplit help lines to help translators
Craig Small [Fri, 27 Dec 2013 22:25:39 +0000 (09:25 +1100)]
Split help lines to help translators

To assist translators, the help lines are split so that each translation
chunk has one option. This gives bonus of if we add or change an option,
only that option remains untranslated rather than the entire help block.

Reference:
  http://www.freelists.org/post/procps/procpsng-for-Translation-Project,1

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agosysctl --system loads default config file
Craig Small [Fri, 27 Dec 2013 12:08:14 +0000 (23:08 +1100)]
sysctl --system loads default config file

Commit cdca71e94506fbb921ab2c626be3ad05c4287498 fixed
the loading the sysctl.conf file, but had the logic
for checking the file exists reversed incorrectly.

11 years agotop: do not forget the fscanf %s terminating null byte
Jim Warner [Tue, 3 Dec 2013 21:00:00 +0000 (15:00 -0600)]
top: do not forget the fscanf %s terminating null byte

Reference(s):
http://www.freelists.org/post/procps/procpsng-339-defects-found

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agoUpdate the library version to 3:0:0 v3.3.9
Craig Small [Tue, 3 Dec 2013 11:16:18 +0000 (22:16 +1100)]
Update the library version to 3:0:0

We have had some API changes which means the library version needs to
be incremented.

11 years agoFixed check for vmstat with stolen time
Craig Small [Tue, 3 Dec 2013 11:08:30 +0000 (22:08 +1100)]
Fixed check for vmstat with stolen time

Commit a8a4a4f added stolen time to vmstat, but broke the checks as
we have another column. This commit fixes the checks

11 years agotop: follow usual name conventions for global variable
Jim Warner [Sat, 30 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: follow usual name conventions for global variable

A recent change involving a one cycle stderr redirect,
to handle a libnuma potential transgression, failed to
follow normal global variable naming conventions. This
patch will capitalize the 1st letter of 'Stderr_save'.

Reference(s):
commit 35dc6dcc49cc9cf8cff4300cb03a38dbe44c05db

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: do not lie about purported alphabetical orderings
Jim Warner [Fri, 29 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: do not lie about purported alphabetical orderings

Excluding those special X_XON/X_XOF enums, which might
not even be present, restore strict collating order of
all the case labels in the task_show switch statement.

Also, adjust a few sort callbacks for the same reason.

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agopmap: Including -p in the man page
Jaromir Capik [Tue, 26 Nov 2013 12:45:22 +0000 (13:45 +0100)]
pmap: Including -p in the man page

Previously the pmap man page was missing the -p switch.
This commit fixes that.

11 years agopmap: Including -c -C -n -N in the man page
Jaromir Capik [Tue, 26 Nov 2013 12:31:44 +0000 (13:31 +0100)]
pmap: Including -c -C -n -N in the man page

Previously the pmap man page was missing the -c -C -n -N switches.
This commit fixes that.

11 years agovmstat: support for time stolen from virtual machines
Jaromir Capik [Mon, 25 Nov 2013 16:39:14 +0000 (17:39 +0100)]
vmstat: support for time stolen from virtual machines

Surprisingly the code for the 'st' column was added in the past,
but wasn't enabled. The vmstat manual already contains the 'st'
column and this commit finally enables the feature.

11 years agovmstat: -w switch for wider output
Jaromir Capik [Mon, 25 Nov 2013 15:56:10 +0000 (16:56 +0100)]
vmstat: -w switch for wider output

This is a rework of the merge request #5 that unconditionally
forced the output to cross the 80 chars border.
With this commit users can switch to the wide output mode
with the -w option.

11 years agoNEWS: updated with the next procps-ng release of 3.3.9
Jim Warner [Fri, 15 Nov 2013 06:00:00 +0000 (00:00 -0600)]
NEWS: updated with the next procps-ng release of 3.3.9

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: increase the maximum number of displayable fields
Jim Warner [Wed, 13 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: increase the maximum number of displayable fields

The recent addition of namespaces, combined with those
potential suse out-of-memory fields, means that we are
close to the maximum number of fields poor ol' top can
display. Imagine, the really old top was limited to 26
fields (28 with the suse hack) and this top had neared
the version 'g' rcfile limits which were a healthy 55.

This patch adds another 15 fields to the maximum while
making it even easier to increase in the future. Also,
top still silently accommodates older config files all
the way back to the original pre-ng version top-3.2.8!

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: expand the man page to include namespaces support
Jim Warner [Mon, 11 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: expand the man page to include namespaces support

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: expand this program to include namespaces support
Jim Warner [Mon, 11 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: expand this program to include namespaces support

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agolibrary: normalize recently added namespaces interface
Jim Warner [Sun, 10 Nov 2013 06:00:00 +0000 (00:00 -0600)]
library: normalize recently added namespaces interface

While 'invisible' thread subdirectories are accessible
under /proc/ with stat/opendir calls, they have always
been treated as non-existent, as is true with readdir.

This patch trades the /proc/#/ns access convention for
the more proper /proc/#/task/#/ns approach when thread
access is desired. In addition some namespace code has
been simplified and made slightly more efficient given
the calloc nature of proc_t acquisition and its reuse.

Reference(s):
commit a01ee3c0b32d4c39aa83066ed61103343469527e

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: eliminate yet more gcc subscript resolution bloat
Jim Warner [Sat, 9 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: eliminate yet more gcc subscript resolution bloat

This patch is inspired by the 'minimize numa overhead'
patch. It trades the use of subscripts for pointers to
avoid gcc repeated subscript offset calculation bloat.

Now, throughout the cpus_refresh function, a subscript
will be resolved just once & this will (dramatically?)
reduce the path-length taken for each and every frame!

For example, a non-optimized compilation could produce
400+ fewer machine instructions through pointer usage.

[ ok, optimized compiles only save 18+ instructions! ]

Lastly, any residual 'symmetry only' crap is now gone!

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: minimize the statistics overhead for numa support
Jim Warner [Fri, 8 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: minimize the statistics overhead for numa support

A recent libnuma potential corruption problem solution
has caused me to reevaluate some associated numa logic
for efficiency. Here is a summary of the problems that
exist with current libnuma/user possible interactions:

. Whenever the numa library was present extra overhead
would always be incurred in maintaining the node stats
even when the '2' or '3' commands were not being used.

. As part of such overhead a separate loop was used to
reinitialize each cpu/node structure with each display
cycle so that prior accumulated totals were preserved.
Again, it didn't matter if numa data was really shown.

This commit attempts to refocus on the 'critical path'
costs in a running top by optimizing for the occasions
when numa node data is not being displayed. Under such
conditions, no extra overhead will be incurred whether
or not a distribution has the libnuma library present.

To achieve this goal, some additional overhead will be
incurred, but only when actually displaying numa data.
And all such new costs have been minimized in spite of
the gcc inclination to duplicate subscript resolution.

Reference(s):
commit 24bd950cb2e1722d459461f0f9c0c30a4b9ffdaa

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: add some flexibility to dlopen() for numa support
Jim Warner [Thu, 7 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: add some flexibility to dlopen() for numa support

A recent libnuma potential corruption problem solution
suggests that libnuma could change in the future so as
to not spew to stderr. This then raises a question how
top could exploit any such library change since we are
currently locked into version #1 of the library by way
of our dlopen("libnuma.so.1", RTLD_LAZY) runtime call.

While not an ultimate solution, this commit will first
try for the most recent version of that library during
top's startup before trying the original libnuma.so.1.
We do this via the unqualified library soname symlink.

For this new dlopen() call to succeed, technically the
numa 'devel' package would usually have been required,
but that's not always true with every distro. And when
the libnuma.so symlink isn't present, it can always be
manually added should a newer & better behaved library
arrive & users tire of the stderr warning at top exit.

Reference(s):
commit 24bd950cb2e1722d459461f0f9c0c30a4b9ffdaa

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: expand on column highlight quirks in man document
Jim Warner [Wed, 6 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: expand on column highlight quirks in man document

Confession is supposed to be good for the sole, right?

After a senior moment regarding the 'x' toggle quirks,
and thinking top had somehow regressed, I concluded an
additional explanatory note might well be appropriate.

Those quirks were already documented under the 5d & 5e
topics. But there was no such caution documented under
the 'x' command explanation itself, found in topic 4c.

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: fix miscellaneous spelling errors in man document
Jim Warner [Tue, 5 Nov 2013 06:00:00 +0000 (00:00 -0600)]
top: fix miscellaneous spelling errors in man document

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agopidof: fixing compiller warnings
Jaromir Capik [Mon, 4 Nov 2013 15:26:19 +0000 (16:26 +0100)]
pidof: fixing compiller warnings

Removing unused variable and adding explicit pid_t retype in printf.

11 years agotop: address some potential libnuma display corruption
Jim Warner [Sun, 3 Nov 2013 05:00:00 +0000 (00:00 -0500)]
top: address some potential libnuma display corruption

There is a chance that the libnuma library may corrupt
top's display with some stderr warning messages in the
event something under /sys/devices/system/node/ cannot
be accessed. And, while 2 overridable 'weak' functions
are provided to alter such behavior, we can't use them
since top dynamically links to the library via dlopen.

This commit will redirect stderr to '/dev/null' during
just the first screen display cycle. Thus we can avoid
the corruption which would have remained visible until
the underlining screen row's data had finally changed.

Lastly, this patch should allow such a library warning
to actually appear when one finally exits our program.

[ i think the libnuma folks should consider changing ]
[ the error/warning interfaces to accommodate dlopen ]
[ rather than forcing something like the ugly kludge ]
[ we have employed or libnuma dependency on everyone ]

Reference(s):
https://bugzilla.redhat.com/show_bug.cgi?id=998678

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agobuild-sys: treate new pidof the same as other products
Jim Warner [Sat, 2 Nov 2013 06:00:00 +0000 (00:00 -0600)]
build-sys: treate new pidof the same as other products

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agofail on null string for arguments
Ryan Cox [Tue, 29 Oct 2013 03:05:35 +0000 (21:05 -0600)]
fail on null string for arguments

11 years agops: possibility to display slice unit for a process
Lukas Nykryn [Wed, 7 Aug 2013 09:57:24 +0000 (11:57 +0200)]
ps: possibility to display slice unit for a process

Library systemd-login offers possibility to display
name of a systemd slice unit for specific pid.

This patch adds output option "slice" which will
show name of systemd slice unit.

To maintain compatibility with non-systemd systems,
procps must be configured with --with-systemd option
to enable this option.

11 years agopidof: support for omitted %PPID and additional separators
Jaromir Capik [Mon, 14 Oct 2013 13:38:33 +0000 (15:38 +0200)]
pidof: support for omitted %PPID and additional separators

This commit introduces support for special %PPID value that
can be passed to the -o option as a substitution for parent
PID. It also allows users to use two additional separators
for omitted PIDs - colon and semicolon.

11 years agoMerge branch 'master' of gitorious.org:procps/procps
Craig Small [Thu, 10 Oct 2013 23:09:07 +0000 (10:09 +1100)]
Merge branch 'master' of gitorious.org:procps/procps

11 years agoUpdate options to single strings
Craig Small [Thu, 10 Oct 2013 23:07:10 +0000 (10:07 +1100)]
Update options to single strings

To assist the translators, each option is a separate string.
This means if we add/change/delete an option the remaining ones
will just keep working and only the impacted option needs some
translation work on it.

11 years agopidof: minor fixes
Jaromir Capik [Mon, 7 Oct 2013 16:17:19 +0000 (18:17 +0200)]
pidof: minor fixes

Adding forgotten --check-root switch. Removing uneeded headers.

11 years agopidof: reimplemented from scratch (replacing sysvinit pidof)
Jaromir Capik [Fri, 4 Oct 2013 18:35:01 +0000 (20:35 +0200)]
pidof: reimplemented from scratch (replacing sysvinit pidof)

As the sysvinit becomes obsolete, some of the bundled tools
need to find a new home. The procps-ng project seems to be
the most suitable project for adopting the pidof tool.
This commit introduces a redesigned version of pidof
that satisfies the LSB requirements.
In corner cases the behaviour might differ from the former
one as the new version doesn't use any stat(2) calls.

11 years agoUpdate free text to help translators
Benno Schulenberg [Wed, 9 Oct 2013 22:56:44 +0000 (09:56 +1100)]
Update free text to help translators

Split up the free options so that each option has its own
gettext field, for ease of translating.

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agoSkip some tests if kill cannot be found
Craig Small [Wed, 9 Oct 2013 08:18:55 +0000 (19:18 +1100)]
Skip some tests if kill cannot be found

Some Debian pbuilders error out on some of the tests because
they cannot find kill to kill the test processes. Now if we
cannot find kill we skip those lot of tests.

Still need to work out why the S390 doesn't like test_sched

References: http://bugs.debian.org/725743

11 years agotop: swat bug impacting 'idle' mode & 'user' filtering
Jim Warner [Fri, 27 Sep 2013 17:12:12 +0000 (12:12 -0500)]
top: swat bug impacting 'idle' mode & 'user' filtering

When Other filtering was introduced the nature of what
constituted a displayed row changed. No longer would a
task_show() call guarantee that another line is shown.
Rather, a non-empty string must have also been tested.

Unfortunately, when any task window was being filtered
for 'idle' mode or a particular 'user', the proc index
was incremented twice due to the perils of copy/paste.
Combining such an index increment with the new test of
task_show results works fine if filtering is inactive.

This was a particularly insidious bug which meant that
an adjacent task would be skipped whenever the current
task met 'idle' and/or 'user' filter criteria, and was
not otherwise excluded due to 'Other' filter criteria.

And, since it was the very next task that was ignored,
the bug was very susceptible to a window's sort order.
This could be illustrated when filtering on some user,
while sorting on PID. Then, toggling Forest View could
make otherwise unseen tasks appear and then disappear.

User workarounds are possible via interactive commands
trading the 'i' and 'u'/'U' provisions for the 'o'/'O'
other filtering capability thus avoiding an extra i++.
But that is certainly less than ideal and doesn't help
the 3.3.7 and 3.3.8 distorted command line provisions.

( this little buggie may end up costing me my pocket )
( protector, my coding badge & maybe even my cubicle )

Reference(s):
http://www.freelists.org/post/procps/Idle-elides-nonidle-processes
. bug originated with 'Other' filtering
commit 5edc6fb3174f1fd02bbfca61ec6d8a3a2e12f71c

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agosysctl --system ignores missing /etc/sysctl.conf
Craig Small [Fri, 20 Sep 2013 12:34:32 +0000 (22:34 +1000)]
sysctl --system ignores missing /etc/sysctl.conf

sysctl --system would not correctly return the RC for files in
subdirectories and would insist on having /etc/sysctl.conf

This update makes two changes when using sysctl --system:
  - The RC status is ORed for each config file, meaning an error in
    any file is propated to the RC
  - If /etc/sysctl.conf doesn't exist we just don't load it

References:
  https://bbs.archlinux.org/viewtopic.php?id=170005
  http://www.freelists.org/post/procps/wrong-defaults-for-sysctl-on-arch-linux

11 years agotop: restore the lost final newline when in Batch mode
Jim Warner [Tue, 17 Sep 2013 05:00:00 +0000 (00:00 -0500)]
top: restore the lost final newline when in Batch mode

This patch adds the final newline when exiting 'Batch'
mode. Interestingly, it has been missing since release
3.3.5 but undetected until the Redhat bugzilla report.

Reference(s):
https://bugzilla.redhat.com/show_bug.cgi?id=1008674

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agomisc: correct additional errors from merge request #13
Jim Warner [Thu, 12 Sep 2013 17:12:12 +0000 (12:12 -0500)]
misc: correct additional errors from merge request #13

Additional errors resulting from merge request #13 are
being addressed in this commit. They involve two cases
of trailing whitespace and one xwarnx printf type arg.

Reference(s):
http://gitorious.org/procps/procps/merge_requests/13
. earlier build-sys fix
commit e2242cb943c620599913db3a68ccba06fa07ac36
. original merge
commit dd6f24dbed12e95235b3df49e550b5039e74e6d8

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agobuild-sys: fix the fatal 'make dist' error for nsutils
Jim Warner [Wed, 11 Sep 2013 14:11:13 +0000 (09:11 -0500)]
build-sys: fix the fatal 'make dist' error for nsutils

While a 'make dist' appeared to work fine without this
patch, the nsutils.h file was missing from the include
subdirectory. Thus the tarball could not support make.

Reference(s):
http://gitorious.org/procps/procps/merge_requests/13
commit dd6f24dbed12e95235b3df49e550b5039e74e6d8

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agoFix integer overflow in getstat()
Craig Small [Wed, 11 Sep 2013 11:57:10 +0000 (21:57 +1000)]
Fix integer overflow in getstat()

Merge request 16

11 years agoFix off-by-one by pmap
Craig Small [Wed, 11 Sep 2013 11:52:49 +0000 (21:52 +1000)]
Fix off-by-one by pmap

Merge request 15

11 years agoMerge commit 'refs/merge-requests/13' of git://gitorious.org/procps/procps into merge...
Craig Small [Wed, 11 Sep 2013 11:34:05 +0000 (21:34 +1000)]
Merge commit 'refs/merge-requests/13' of git://gitorious.org/procps/procps into merge-requests/13

Conflicts:
pgrep.c
ps/output.c
ps/ps.1

11 years agoMerge commit 'refs/merge-requests/2' of git://gitorious.org/procps/procps into merge...
Craig Small [Wed, 11 Sep 2013 10:50:48 +0000 (20:50 +1000)]
Merge commit 'refs/merge-requests/2' of git://gitorious.org/procps/procps into merge-requests/2

Conflicts:
uptime.c

11 years agofree: reusing 'shared' for Shmem
Adrian Brzezinski [Tue, 23 Jul 2013 18:33:00 +0000 (20:33 +0200)]
free: reusing 'shared' for Shmem

Previously the shared memory column was always zero
for 2.6 series kernels (and later) due to the fact,
that the value was taken from the MemShared entry
that disappeared with 2.6 series kernels.
Later a new Shmem entry appeared in the /proc/meminfo
file and the 'shared' column now displays either
the MemShared or the Shmem value (depending on their
presence - the presence is mutually exclusive).
If none of the two entries is exported by the kernel,
then the column is zero.

11 years agofree: clarification of credits for the Shmem support
Jaromir Capik [Mon, 9 Sep 2013 14:15:54 +0000 (16:15 +0200)]
free: clarification of credits for the Shmem support

An unpleasant thing happened when I comitted the shmem support
for the 'free' tool. We already had a merge request from
Adrian Brzezinski in the queue, doing exactly the same.
As Adrian deserves credits, I'm reverting the change
and re-applying with the next commit in order to make
him a part of the project history.

11 years agotop: swat bug affecting batch mode and width provision
Jim Warner [Thu, 29 Aug 2013 05:00:00 +0000 (00:00 -0500)]
top: swat bug affecting batch mode and width provision

Normally, the internally tracked 'Screen_cols' can not
exceed the lessor of 512 or actual screen width. There
was one case, however, where that 512 byte upper limit
was no longer properly imposed as it should have been.

When operating in 'Batch' mode the actual screen width
was allowed to be exceeded when the optional -w switch
was also used. But, it should never have exceeded 512.

This patch ensures the upper limit is always observed.

Reference(s):
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=721204

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: correct, improve and otherwise tweak configs_read
Jim Warner [Tue, 20 Aug 2013 05:00:00 +0000 (00:00 -0500)]
top: correct, improve and otherwise tweak configs_read

This patch addresses the four '-Wunused-result' errors
generated whenever an optimized compile is invoked. It
also made the configs_read() guy a little more robust.

In the process, some logic was rearranged slightly and
some comments were re-indented simply for consistency.

Reference(s):
warning: ignoring return value of 'fgets', declared with attribute warn_unused_result [-Wunused-result]
warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: modest efficiency change to message line handling
Jim Warner [Thu, 15 Aug 2013 05:00:00 +0000 (00:00 -0500)]
top: modest efficiency change to message line handling

When the final solution for cursor positioning for all
^Z or ^C cases was introduced the revised placement of
message line management introduced with the window mgr
'screen' refactor was retained. Those two commits mean
that a former tgoto was no longer needed when clearing
that msg line or displaying the scroll coordinate msg.

This patch eliminates the tgoto employed by frame_make
while assimilating a now defunct show_scroll function.

Reference(s):
. final cursor positioning for ^Z or ^C
commit 46a1356219cfab67240704af9cd73b58a20d4232
. 'screen' window manager refactor
commit 0fe393ff270922cd4f6edbcaabba006314e73a37

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: hint that Summary Area 'cached' is Mem (not Swap)
Jim Warner [Fri, 9 Aug 2013 05:00:00 +0000 (00:00 -0500)]
top: hint that Summary Area 'cached' is Mem (not Swap)

This patch just provides a visual clue to separate the
values reported for cached Memory from other values on
the Swapped line (which is being shared due to space).

Reference(s):
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718670

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agoIncrease watch interval.
Craig Small [Sun, 25 Aug 2013 07:43:20 +0000 (17:43 +1000)]
Increase watch interval.

watch would only use an interval of up to 4294 seconds and silently
change to this limit. The 4294 seconds is 2^32/10^6 or how many
microseconds fit into unsigned int.

This change increases the limit to 2^32 seconds which is
approximately 136 years. This should be ok for now. Anything above
the old limit now uses sleep() instead of usleep() which only uses
integers (so 9999.123 seconds will be 9999 seconds)

This bug was first reported in 2006 and included a patch by
Stephen Kratzer. The patch was updated to fit the current source.

Bug-Debian: http://bugs.debian.org/720445
References: http://sourceforge.net/mailarchive/message.php?msg_id=4335929

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agobuild-sys: add support for silent buils
Karel Zak [Tue, 13 Aug 2013 13:21:33 +0000 (15:21 +0200)]
build-sys: add support for silent buils

The automake AM_SILENT_RULES macro is supported since automake 1.11
(which is required for procps). The silent functionality is enabled by
default, you can change it by:

  ./configure --disable-silent-rules
or
   make V=1

Note that make still prints compiler errors, etc.

Signed-off-by: Karel Zak <kzak@redhat.com>
11 years agobuild-sys: correct one AC_ARG_ENABLE() cleanup default
Jim Warner [Tue, 13 Aug 2013 14:44:54 +0000 (09:44 -0500)]
build-sys: correct one AC_ARG_ENABLE() cleanup default

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agobuild-sys: cleanup AC_ARG_ENABLE() usage
Karel Zak [Tue, 13 Aug 2013 13:21:31 +0000 (15:21 +0200)]
build-sys: cleanup AC_ARG_ENABLE() usage

 * don't duplicate default behavior with [enable_foo=$enableval]
 * don't introduce things like disable_* variables
 * use everywhere the same coding style

Signed-off-by: Karel Zak <kzak@redhat.com>
11 years agotop: Fixing duplicate words in the man page
Jaromir Capik [Fri, 9 Aug 2013 16:11:01 +0000 (18:11 +0200)]
top: Fixing duplicate words in the man page

11 years agops: address a potential 'newline' quirk the libselinux
Jim Warner [Wed, 7 Aug 2013 17:58:57 +0000 (12:58 -0500)]
ps: address a potential 'newline' quirk the libselinux

Sometimes with libselinux present but SELinux inactive
the context reported is "unconfined" which contains an
embedded newline. This then causes misalignment of any
subsequent data. So, ps will now protect against that.

Reference(s):
http://www.freelists.org/post/procps/enablelibselinux-switch,14

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: correct cursor positioning for all ^Z or ^C cases
Jim Warner [Sat, 6 Jul 2013 05:00:00 +0000 (00:00 -0500)]
top: correct cursor positioning for all ^Z or ^C cases

Some more (very obscure) conditions where a suspension
or program end might embed the shell prompt within top
output have been uncovered beyond the 2 already known.

We had already covered some suspend/end contingencies:
1. the users were using the 'fields management' screen
2. the users were prompted for any line oriented input

However, there remained some situations where ^Z or ^C
could still produce a misplaced cursor + shell prompt:
3. the 'g' command while waiting for the window choice
4. the 'W' command if about to overwrite an old rcfile
5. the '=' command when exploiting the Inspect feature
6. the period during which any error message was shown

But, even when all those bases are covered there still
remains a remote possibility that such interrupts will
occur during a top repaint cycle. So rather than throw
yet more code at these self-inflicted problems perhaps
it is better if we just throw in the proverbial towel.

Thus, I'll take the only sane approach and restore the
results expected ever since top's inception and before
scrollback buffers entered the picture. Namely, with a
^Z or ^C the cursor will be placed on the final screen
row. That usually means it will immediately follow the
last output line but it may follow many blank lines if
the user interrupts top when *not* on the main screen.

Reference(s):
. expanded repositioning (for line oriented input)
commit 33104a2bcc321495107d72e4cfee4090b1d90f76
. introduced repositioning (for fields management)
commit 5c974ff44da4fbbb9170dd15bdd81555c62c31a9
. scrollback buffers (the cursor handling changes)
commit dedaf6e1a81738ff08ee8e8523871e12f555ad6d

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: tweak cursor state code to swat an obscure buglet
Jim Warner [Fri, 5 Jul 2013 05:00:00 +0000 (00:00 -0500)]
top: tweak cursor state code to swat an obscure buglet

An obscure bug has been discovered where a 'W' with an
old rcfile, warning against overwrite, would display a
cursor that should normally be hidden. This followed a
user's reply. So some logic was rearranged just a bit.

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: correct, improve or otherwise tweak some comments
Jim Warner [Thu, 4 Jul 2013 05:00:00 +0000 (00:00 -0500)]
top: correct, improve or otherwise tweak some comments

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agofree: reusing 'shared' for Shmem
Jaromir Capik [Wed, 7 Aug 2013 16:21:43 +0000 (18:21 +0200)]
free: reusing 'shared' for Shmem

Previously the shared memory column was always zero
for 2.6 series kernels (and later) due to the fact,
that the value was taken from the MemShared entry
that disappeared with 2.6 series kernels.
Later a new Shmem entry appeared in the /proc/meminfo
file and the 'shared' column now displays either
the MemShared or the Shmem value (depending on their
presence - the presence is mutually exclusive).
If none of the two entries is exported by the kernel,
then the column is zero.

11 years agops: making the libselinux support configurable
Jaromir Capik [Wed, 7 Aug 2013 15:52:38 +0000 (17:52 +0200)]
ps: making the libselinux support configurable

Previously the libselinux support was present
in the sources, but disabled with a preprocessor
condition (#if 0).
From now the libselinux support can be enabled with
the --enable-libselinux switch available
in the configuration script. That way is more
flexible than local patches modifying the condition
value from 0 to 1.

11 years agopwdx: fails when run in a nonexistent locale
Colin Watson [Mon, 5 Aug 2013 10:52:22 +0000 (20:52 +1000)]
pwdx: fails when run in a nonexistent locale

pwdx rather mysteriously fails with "invalid process id" when run in a
nonexistent locale (e.g. "LC_ALL=foo pwdx $$").  This is because it
fails to obey the documented calling sequence for strtol - that is, set
errno to 0 before the call - and thus the errno from the setlocale
failure bleeds over into its check for whether strtol failed.

References: http://bugs.debian.org/718766

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agoConditional test vmstat -p
Craig Small [Wed, 31 Jul 2013 11:54:53 +0000 (21:54 +1000)]
Conditional test vmstat -p

11 years agosysctl, w: miscelaneous usage/man fixes
Jaromir Capik [Fri, 19 Jul 2013 12:50:02 +0000 (14:50 +0200)]
sysctl, w: miscelaneous usage/man fixes

This commit is a result of RH man page mass scan, that failed.
All the broken/missing switches should be fixed now.

11 years agotop: cursor repositioning includes line oriented input
Jim Warner [Mon, 1 Jul 2013 05:00:00 +0000 (00:00 -0500)]
top: cursor repositioning includes line oriented input

A recent patch introduced the ability to recognize the
need to reposition the cursor at suspension or program
end. There remained unmet 1 additional potential need.

This commit extends that ability to embrace line input
so that if a user issues ^Z or ^C while being prompted
the resulting shell output will no longer be embedded.

Reference(s):
http://www.freelists.org/post/procps/top-library-miscellaneous-tweaks,7
commit 5c974ff44da4fbbb9170dd15bdd81555c62c31a9

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: refine some miscellaneous signals interrupt stuff
Jim Warner [Sun, 30 Jun 2013 05:00:00 +0000 (00:00 -0500)]
top: refine some miscellaneous signals interrupt stuff

This commit mostly justs renames a few identifiers but
it also will now suppress any end-of-job report if top
wasn't ended via the 'q' key convention (i.e. signal).

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: enable screen contents preservation at end-of-job
Jim Warner [Fri, 28 Jun 2013 05:00:00 +0000 (00:00 -0500)]
top: enable screen contents preservation at end-of-job

The title of this commit is actually quite misleading.

Were it more accurate, it would at least mention a tty
emulator's scrollback buffer, which was the cumulation
of a long pursuit to reduce the SIGWINCH overhead when
a window manager carelessly floods an application with
that signal *while* a user is still resizing a window!

Disabling and enabling that scrollback buffer resulted
in the final top display replaced with original screen
contents, a phenomenon acknowledged at the time but it
also represented a user interface change which has now
produced the first request for return to old behavior.

After the SIGWINCH dust settled, another problem arose
regarding behaviors under the 'screen' window manager.
In response, top was refactored a bit to avoid display
corruption. That was before discovering 'screen' could
duplicate the scrollback buffer behavior top expected.

As it turns out, the 'screen' refactoring had probably
made scrollback buffer manipulation unnecessary. Still
one could argue that a window should not be allowed to
scroll while a constantly updating program was active.

The solution represented in this commit returns former
behavior at program end (retaining top's last screen).
And if we ever wish to disable scrollback buffers, the
associated logic was retained but made conditional. It
is not reflected in configure.ac but might be someday.

Lastly, this commit corrects cursor positioning when a
^C is issued under 'Fields Management' at any terminal
that didn't have a scrollback buffer (i.e. a console).

Reference(s):
https://bugzilla.redhat.com/show_bug.cgi?id=977561
http://www.freelists.org/post/procps/top-library-miscellaneous-tweaks,1
. screen program refactor
commit 0fe393ff270922cd4f6edbcaabba006314e73a37
. scrollback buffer disabled
commit dedaf6e1a81738ff08ee8e8523871e12f555ad6d
. sigwinch management defines
commit adca737758e5afc7be344a736953931894cbc19f
commit 4f33b6b8c56464b4044deb29a3bb0e32622e108f

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agolibrary: for atexit() support, fix fileutils for EPIPE
Jim Warner [Tue, 25 Jun 2013 05:00:00 +0000 (00:00 -0500)]
library: for atexit() support, fix fileutils for EPIPE

When fileutils with stream error checking was borrowed
from GNU lib, an omission was also propagated where an
errno of EPIPE wouldn't be preserved in close_stream()
making a test for EPIPE in close_stdout() meaningless.

This patch corrects such oversight so that an errno of
EPIPE no longer produces 'write error' at program end.

( gnulib provides for optionally ignoring EPIPE, but )
( if a program chooses to ignore it, then their code )
( appears to suffer from this close_stream oversight )

Reference(s):
. original fileutilis addition
commit c7cf98b0e03780f78abe5275c6fb282f71a2369f
. bugzilla report
https://bugzilla.redhat.com/show_bug.cgi?id=976199

11 years agotop: trade two groff_mdoc macros for groff equivalents
Jim Warner [Thu, 20 Jun 2013 05:00:00 +0000 (00:00 -0500)]
top: trade two groff_mdoc macros for groff equivalents

The .Bd and .Ed macros, from the mdoc collection, have
caused a few raised eyebrows (lintian, doclifter, etc)
in the past. With this commit, we will trade their use
for the standard existing groff .nf & .fi equivalents.

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agoFix overflow of "running" value in getstat()
Vadim Ushakov [Tue, 11 Jun 2013 04:09:05 +0000 (12:09 +0800)]
Fix overflow of "running" value in  getstat()

It seems in some cases procs_running field of /proc/stat can contain 0 even if vmstat itself is running. At least this can be reproduced on Linux 3.9.3 compiled with BFS scheduler.

Since getstat() decrements value of procs_running by 1, we get overflow:

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0 667732 918996  57376 911260   21   30    36    40   98   45 14 82  4  1
 4294967295  0 667728 916716  57376 911264    8    0     8     0 1958 3733 28  7 65  1
 0  0 667700 915996  57376 911416   24    0   152     0 1735 3600 23  5 71  1
 4294967295  0 667700 915872  57376 911392    0    0     0     0 1528 3165 21  4 76  0

11 years agotop: add the major version to dlopen of libnuma soname
Jim Warner [Thu, 6 Jun 2013 05:00:00 +0000 (00:00 -0500)]
top: add the major version to dlopen of libnuma soname

When the plug-in approach to NUMA support was added, I
carelessly employed the compile-time linker convention
for naming the library. Technically this then required
the 'devel' package for NUMA support to be present for
the unqualified soname symlink to be available. Either
that or one must have manually created such a symlink.

This commit adds the missing major version to dlopen()
of libnuma.so.1 so simply having a more likely package
such as 'numactl' will enable both '2' & '3' commands.

References(s):
http://www.freelists.org/post/procps/top-NUMA-node-CPU-utilization-support,25
. initial dlopen support
commit edba932a7e9b950dd91bc486e107788e977a5186

Signed-off-by: Jim Warner <james.warner@comcast.net>