Command line and full screen utilities for browsing procfs, a "pseudo" file system dynamically generated by Linux to provide information about the status of entries in its process table.
Go to file
Jim Warner 7e33fc47c6 top: avoid '%Cpu' distortion resulting from keystrokes
Like a line from the movie Cool Hand Luke: "what we've
got here is failure to communicate"; well that was me!

Finally, I got a handle on the issue referenced below.

At first, it seemed inappropriate to try comparing cpu
percentages as reported by different top versions. And
even more so when they are invoked many seconds apart.

As it turns out, this issue had nothing to do with the
specific processor. Nor did it involve two versions of
top running simultaneously using the same delay value.
Rather, it concerns keyboard input and several changes
which were made last year in commits referenced below.

They were prompted by development of the 'Ctrl' bottom
window feature. Initially, if transitioning from a big
window to a small window portions of the former window
remained visible until the next refresh. A solution to
that led to a flaw when resizing top. Fixing that then
created a race condition with full screen replacement.

The net effect of all those changes was to distort the
cpu percentage value for the processor on which top is
dispatched to service user input. It arose because the
new frame was begun immediately, yielding few 'ticks'.

[ when fewer ticks are accumulated the potential for ]
[ distortion increases. As an example, hold some key ]
[ then watch cpu percentages (works best in graphs). ]

[ while any version of top will show distortions for ]
[ the above experiment, a v4.0.0 top will be greater ]
[ and %cpu is distorted even for a single keystroke. ]

So, to restore proper 3.3.17 keystroke behavior, we'll
revert parts of the first 3 commits shown below. Plus,
the 4th commit will be entirely reversed as redundant.

Reference(s):
https://gitlab.com/procps-ng/procps/-/issues/274

. Sep, 2022 - avoid potential 'BREAK_screen' race
commit 3e5016c289
. Sep, 2022 - fix improper sigwinch behavior
commit 9d9993708b
. May, 2022 - made more responsive to kdb input
commit 3ea1bc779f
. turn bottom window off with additional key
commit 3f068a66c8

Signed-off-by: Jim Warner <james.warner@comcast.net>
2023-03-09 20:16:47 +11:00
doc misc: Move Documentation to doc 2022-08-29 18:38:52 +10:00
library library: become more tolerant of /proc/cpuinfo formats 2023-03-02 19:38:41 +11:00
local misc: eliminated some instances of trailing whitespace 2023-01-24 12:15:19 +11:00
man pgrep: Use only --signal option for signal 2023-03-01 17:35:14 +11:00
po nls: Updated the translations from TP website 2023-02-08 18:39:28 +11:00
po-man nls: Updated the translations from TP website 2023-02-08 18:39:28 +11:00
src top: avoid '%Cpu' distortion resulting from keystrokes 2023-03-09 20:16:47 +11:00
testsuite testsuite🆓 total committed memory can be negative (if overcommitted) 2023-02-15 11:02:57 +01:00
.gitignore nls: Update the man-po logic 2022-11-10 21:52:19 +11:00
.gitlab-ci.yml test: Update gitlab CI YAML to use shared runner 2016-04-20 22:20:55 +10:00
AUTHORS Changed git site to gitlab 2015-05-10 14:57:50 +10:00
COPYING license: update FSF addresses 2012-03-04 08:04:24 +11:00
COPYING.LIB miscellaneous: clean up trailing whitespace once again 2013-04-07 18:05:01 +10:00
ChangeLog Changed git site to gitlab 2015-05-10 14:57:50 +10:00
INSTALL.md INSTALL.md: Replace blockquotes with code blocks 2020-04-24 18:56:16 +10:00
Makefile.am build-sys: Set library to 0:1:0 2022-12-05 21:04:05 +11:00
NEWS pgrep: Use only --signal option for signal 2023-03-01 17:35:14 +11:00
README.md misc: Fix typo 2021-10-14 07:57:27 +11:00
autogen.sh misc: Move all binaries to src 2022-08-29 18:29:28 +10:00
configure.ac revert: pidfd_open check 2022-11-09 21:32:26 +11:00
create-man-pot.sh build-sys: Rearrange the manual pages 2022-08-29 18:07:43 +10:00
sysctl.conf misc: Add some link examples to sysctl.conf (catch up) 2018-05-06 07:19:38 +10:00
translate-man.sh build-sys: Rearrange the manual pages 2022-08-29 18:07:43 +10:00

README.md

build status procps

procps is a set of command line and full-screen utilities that provide information out of the pseudo-filesystem most commonly located at /proc. This filesystem provides a simple interface to the kernel data structures. The programs of procps generally concentrate on the structures that describe the processess running on the system.

The following programs are found in procps:

  • free - Report the amount of free and used memory in the system
  • kill - Send a signal to a process based on PID
  • pgrep - List processes based on name or other attributes
  • pkill - Send a signal to a process based on name or other attributes
  • pmap - Report memory map of a process
  • ps - Report information of processes
  • pwdx - Report current directory of a process
  • skill - Obsolete version of pgrep/pkill
  • slabtop - Display kernel slab cache information in real time
  • snice - Renice a process
  • sysctl - Read or Write kernel parameters at run-time
  • tload - Graphical representation of system load average
  • top - Dynamic real-time view of running processes
  • uptime - Display how long the system has been running
  • vmstat - Report virtual memory statistics
  • w - Report logged in users and what they are doing
  • watch - Execute a program periodically, showing output fullscreen

Reporting Bugs

There are a few ways of reporting bugs or feature requests:

  1. Your distribution's bug reporter. If you are using a distribution your first port of call is their bug tracker. This is because each distribution has their own patches and way of dealing with bugs. Also bug reporting often does not need any subscription to websites.
  2. GitLab Issues - To the left of this page is the issue tracker. You can report bugs here.
  3. Email list - We have an email list (see below) where you can report bugs. The problem with this method is bug reports often get lost and cannot be tracked. This is especially a big problem when its something that will take time to resolve.

If you need to report bugs, there is more details on the Bug Reporting page.

Email List

The email list for the developers and users of procps is found at http://www.freelists.org/archive/procps/ This email list discusses the development of procps and is used by distributions to also forward or discuss bugs.