summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update the library version to 3:0:0v3.3.9Craig Small2013-12-031-3/+3
| | | | | We have had some API changes which means the library version needs to be incremented.
* Fixed check for vmstat with stolen timeCraig Small2013-12-031-2/+2
| | | | | Commit a8a4a4f added stolen time to vmstat, but broke the checks as we have another column. This commit fixes the checks
* top: follow usual name conventions for global variableJim Warner2013-12-021-7/+7
| | | | | | | | | | | | 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>
* top: do not lie about purported alphabetical orderingsJim Warner2013-12-021-8/+8
| | | | | | | | | | 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>
* pmap: Including -p in the man pageJaromir Capik2013-11-261-0/+3
| | | | | Previously the pmap man page was missing the -p switch. This commit fixes that.
* pmap: Including -c -C -n -N in the man pageJaromir Capik2013-11-261-0/+12
| | | | | Previously the pmap man page was missing the -c -C -n -N switches. This commit fixes that.
* vmstat: support for time stolen from virtual machinesJaromir Capik2013-11-251-12/+14
| | | | | | 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.
* vmstat: -w switch for wider outputJaromir Capik2013-11-252-6/+33
| | | | | | | 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.
* NEWS: updated with the next procps-ng release of 3.3.9Jim Warner2013-11-251-0/+18
| | | | Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: increase the maximum number of displayable fieldsJim Warner2013-11-252-16/+17
| | | | | | | | | | | | | | | | 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>
* top: expand the man page to include namespaces supportJim Warner2013-11-251-7/+43
| | | | Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: expand this program to include namespaces supportJim Warner2013-11-253-2/+49
| | | | Signed-off-by: Jim Warner <james.warner@comcast.net>
* library: normalize recently added namespaces interfaceJim Warner2013-11-252-32/+21
| | | | | | | | | | | | | | | | | 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>
* top: eliminate yet more gcc subscript resolution bloatJim Warner2013-11-251-32/+33
| | | | | | | | | | | | | | | | | | | 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>
* top: minimize the statistics overhead for numa supportJim Warner2013-11-251-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* top: add some flexibility to dlopen() for numa supportJim Warner2013-11-251-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* top: expand on column highlight quirks in man documentJim Warner2013-11-251-0/+5
| | | | | | | | | | | | | | 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>
* top: fix miscellaneous spelling errors in man documentJim Warner2013-11-251-9/+9
| | | | Signed-off-by: Jim Warner <james.warner@comcast.net>
* pidof: fixing compiller warningsJaromir Capik2013-11-041-3/+3
| | | | Removing unused variable and adding explicit pid_t retype in printf.
* top: address some potential libnuma display corruptionJim Warner2013-11-041-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* build-sys: treate new pidof the same as other productsJim Warner2013-11-041-0/+1
| | | | Signed-off-by: Jim Warner <james.warner@comcast.net>
* ps: possibility to display slice unit for a processLukas Nykryn2013-10-163-2/+26
| | | | | | | | | | | | 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.
* pidof: support for omitted %PPID and additional separatorsJaromir Capik2013-10-142-4/+11
| | | | | | | 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.
* Merge branch 'master' of gitorious.org:procps/procpsCraig Small2013-10-114-0/+443
|\
| * pidof: minor fixesJaromir Capik2013-10-101-3/+1
| | | | | | | | Adding forgotten --check-root switch. Removing uneeded headers.
| * pidof: reimplemented from scratch (replacing sysvinit pidof)Jaromir Capik2013-10-104-0/+445
| | | | | | | | | | | | | | | | | | | | 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.
* | Update options to single stringsCraig Small2013-10-115-59/+63
|/ | | | | | | 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.
* Update free text to help translatorsBenno Schulenberg2013-10-101-13/+13
| | | | | | | 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>
* Skip some tests if kill cannot be foundCraig Small2013-10-092-13/+25
| | | | | | | | | | 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
* top: swat bug impacting 'idle' mode & 'user' filteringJim Warner2013-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* sysctl --system ignores missing /etc/sysctl.confCraig Small2013-09-201-4/+10
| | | | | | | | | | | | | | 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
* top: restore the lost final newline when in Batch modeJim Warner2013-09-171-0/+1
| | | | | | | | | | | 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>
* misc: correct additional errors from merge request #13Jim Warner2013-09-172-3/+3
| | | | | | | | | | | | | | | 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>
* build-sys: fix the fatal 'make dist' error for nsutilsJim Warner2013-09-121-0/+1
| | | | | | | | | | | | 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>
* Fix integer overflow in getstat()Craig Small2013-09-111-1/+2
|\ | | | | | | Merge request 16
| * Fix overflow of "running" value in getstat()Vadim Ushakov2013-06-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix off-by-one by pmapCraig Small2013-09-111-1/+1
|\ \ | | | | | | | | | Merge request 15
| * | Fix off-by-one in pmapCristian Rodríguez2013-05-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When procps is built with gcc 4.8 address sanitizer static int one_proc(proc_t * p).. .. char smap_key[20]; ... (sscanf(mapbuf, "%20[^:]: %llu", smap_key.. rightfully results in an overflow and the program aborts.
* | | Merge commit 'refs/merge-requests/13' of git://gitorious.org/procps/procps ↵Craig Small2013-09-1112-10/+350
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into merge-requests/13 Conflicts: pgrep.c ps/output.c ps/ps.1
| * | | skill: support namespacesAristeu Rozanski2013-04-183-5/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the same fashion of pgrep, introduce two new options: --ns <pid> - nslist <ns,...> which allows processes to be filtered by namespace. Signed-off-by: Aristeu Rozanski <arozansk@redhat.com>
| * | | pgrep: introduce support for namespacesAristeu Rozanski2013-04-165-4/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A PID should be specified with --ns: $ pgrep --ns 12345 which will only match the processes which belong to to the same 6 namespaces. It is also possible to specify which namespaces to test: $ pgrep --ns 12345 --nslist mnt,net,ipc which will match processes that belong to the same mount, network and IPC namespaces as PID 12345. Signed-off-by: Aristeu Rozanski <arozansk@redhat.com>
| * | | procps: add support for linux namespacesAristeu Rozanski2013-04-165-0/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each process in Linux has a /proc/<pid>/ns directory which contains symbolic links to pipes that identify which namespaces that process belongs to. This patch adds support for ps to display that information optionally. Signed-off-by: Aristeu Rozanski <arozansk@redhat.com>
* | | | Merge commit 'refs/merge-requests/2' of git://gitorious.org/procps/procps ↵Craig Small2013-09-117-34/+101
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into merge-requests/2 Conflicts: uptime.c
| * | | | Add -p|--pretty option to uptime(1) for pretty output.David Cantrell2012-02-227-34/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the -p option to the uptime(1) command, which changes the uptime displayed from something like: 10:35:52 up 2:33, 1 user, load average: 1.69, 1.65, 1.63 to: up 2 hours, 33 minutes I originally implemented this as the up(1) program about 14 years ago. In 2008 or 2009, I created a patch for procps to add this functionality to uptime and submitted it to the project. Never heard from the project and no new releases of procps had been made. Then I found out about this project and decided to port my patch to it. So here it is. This is really just for fun. There is no real technical reason to have this functionality. But even now, 14 years later, I still get emails asking where the source code for up is. So I thought it would be nice for the uptime command on Linux to sport the up functionality by default.
* | | | | free: reusing 'shared' for ShmemAdrian Brzezinski2013-09-092-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | free: clarification of credits for the Shmem supportJaromir Capik2013-09-092-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | top: swat bug affecting batch mode and width provisionJim Warner2013-08-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | top: correct, improve and otherwise tweak configs_readJim Warner2013-08-301-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | top: modest efficiency change to message line handlingJim Warner2013-08-302-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | top: hint that Summary Area 'cached' is Mem (not Swap)Jim Warner2013-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>