summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* top: cosmetic changes with two abreast summary displayJim Warner2022-09-202-12/+11
| | | | | | | This commit will change some comments, adjust a little whitespace but mostly rename some #define identifiers. Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: distinct separator if two abreast summary displayJim Warner2022-09-203-3/+11
| | | | | | | | | | | | | When displaying detailed memory statistics two abreast data for the lines are less than those for cpus. So we can exploit such a difference to provide a distinctive separator. This may help separating cpu & memory data. [ in truth, this happened before this patch. what we ] [ are doing now is polishing that accidental feature ] [ and placing it under the control of a conditional. ] Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: harden detailed stats two abreast summary displayJim Warner2022-09-201-0/+6
| | | | | | | | | | | | | | When displaying detailed cpu statistics, as opposed to those scalable graphs, only two per line can be shown. Therefore, if we are showing a detail version, our '4' toggle must prematurely revert to single mode display. Conversely, the 't' toggle must also turn off that '4' toggle rather than try to print more than 2 abreast if we're currently executing in detailed statistics mode. Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: refined memory graphs two abreast summary displayJim Warner2022-09-132-43/+59
| | | | | | | | | | | | | | | | | | | | When more than two cpus are displayed per summary area line in graph form, those memory graphs were scaled to that same width for consistency & aesthetics. However, they probably shouldn't have been reduced to less than terminal width due to a resulting loss of information. [ after all, detailed memory stats are never reduced ] So now, supporting logic was refactored to behave just as it did before the 4 toggle was expanded beyond '1'. [ the changes impact the 2 memory graphs exclusively ] Reference(s): https://www.freelists.org/post/procps/top-enhancements-2-bugs-swatted,1 Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: additional tweaks for two abreast summary displayJim Warner2022-09-131-5/+7
| | | | | | | | | | | | | | | This patch just supplements the previous series with a few minor tweaks representing some diverse objectives: . a recent date for man page (which i always overlook) . improved length calculations to maximize graph width . a proper response to platforms with less than 8 cpus . more consistency and readability with one blank line Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: implemented more than two abreast summary displayJim Warner2022-09-121-25/+41
| | | | | | | | | | | | | | Well, here it is. This is what the preceding series of commits was leading to: an ability to show up to eight cpus per Summary Area line. In reality, a self imposed limit of four cpus on such lines seems more realistic. In any case, the new capability could also be employed along with that '!' toggle which consolidates adjacent cpus into a solitary graph. When used together the '4' and '!' toggles should accommodate any number of cpus. Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: prepare for more than two abreast summary displayJim Warner2022-09-122-23/+22
| | | | | | | | | | | | | | | | | I guess the cat's out of the bag with the prior commit message. It mentioned the objective of displaying more than the current two cpu graphs on summary area lines. On the way to that objective, this patch just prepares our battlefield for the actual implementation in which up to 8 individual cpu graphs will be shown on 1 line. [ no logic has been impacted with this commit. we're ] [ just adding one manifest constant, trading several ] [ identifiers and updating some comments so the next ] [ commit might be just a little bit more manageable. ] Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: better graphic scaling in cpu/mem summary displayJim Warner2022-09-121-10/+9
| | | | | | | | | | | | | | | | | | | | | | This program has always been sensitive to the width of a terminal/console. The detailed cpu/memory statistics plus all of those full screen replacement windows were designed to fit within some 80 column, 24 row display. When a user narrowed a gui terminal to less than those dimensions, top would simply truncate the data to fit. However, when displaying cpu/mem graphs instead of the detailed statistics such truncation was not justified. After all, such graphs were already scaled to 80 cols. Henceforth, when in graph mode, truncation won't occur until the graphs will no longer fit within 10 columns. [ can you keep a secret? this change is really being ] [ made in anticipation of showing more than just two ] [ cpu graphs in the summary area on each screen row! ] Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: refactor graph support of cpu/mem summary displayJim Warner2022-09-122-80/+89
| | | | | | | | | | | | | | | | | | The logic (illogic?) in the sum_tics() and do_memory() functions has grown to become almost unfathomable over time. Additionally, though perhaps not apparent in the code, many steps are duplicated within those routines. So, this patch refactors all the summary graph support to consolidate duplicated code and (hopefully) make it more understandable with an eye to future maintenance. [ additionally, that show_special guy's workload has ] [ been reduced by eliminating any special directives ] [ previously embedded in some cpu graphs even though ] [ a cpu may have been idle during the last interval. ] Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: eliminate that 'TOG4_NOTRUNC' compile conditionalJim Warner2022-09-124-13/+4
| | | | | | | | | | | | | | | | | | When 2 abreast cpu display was introduced, the minimum screen width was 160 columns so as to avoid (minimize) truncation. Later that was reduced to 80 columns while keeping the original minimum as a compile conditional. In preparation for (virtually) eliminating these width restrictions in a future patch this #define's history. Reference(s): . May, 2020 - introduced #define TOG4_NOTRUNC commit be3dcaa842cb64859e356d350c17de34932e5f1b . May, 2020 - introduce 2 abreast display commit 59f5a37a247184b3009af963706ca68198067185 Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: eliminate that 'TOG4_NOFORCE' compile conditionalJim Warner2022-09-122-6/+0
| | | | | | | | | | | | | | | | | | | | When two abreast display was introduce, in that commit shown below, this #define provision was also added. It actually was an artifact left from program development and never made much sense in a real world application. If activated it would make the '4' toggle appear to be broken since it would only take affect if a user first activated individual cpu display (the '1' toggle off). And there was no error message offered to those users. So, this questionable #define is now being eliminated. Reference(s): . May, 2020 - introduce 2 abreast display commit 59f5a37a247184b3009af963706ca68198067185 Signed-off-by: Jim Warner <james.warner@comcast.net>
* top: fix an improper behavior following a SIGWINCH bugJim Warner2022-09-121-1/+1
| | | | | | | | | | | | | | | | | | | When top was made more responsive to keyboard input in that commit referenced below, his previous response to a SIGWINCH was upset. Formerly, that display integrity was restored with the next refresh cycle. But, without this patch, one must strike some key to accomplish it. [ in truth, this patch vastly improves that sigwinch ] [ response. whereas before, although integrity would ] [ be restored automatically, it did not happen until ] [ the next regular refresh. now it is instantaneous! ] Reference(s): . May, 2022 - made more responsive to kdb input commit 3ea1bc779fb7ca5bf065a5ca620ec5b5823bc61c Signed-off-by: Jim Warner <james.warner@comcast.net>
* Improve trace().Rafael Kitover2022-09-011-2/+2
| | | | | | | | | | | | | | | | | Turn on trace() with the TRACE macro and remove the ## token paste preprocessor operator which is unnecessary here and causes these errors: ps/common.h:176:26: error: pasting "(" and ""ps_argv[thisarg] is %s\n"" does no t give a valid preprocessing token . Send trace output to STDERR. Tracing can be enabled by adding TRACE to CPPFLAGS as follows: ./configure CPPFLAGS="-DTRACE" Signed-off-by: Rafael Kitover <rkitover@gmail.com>
* pgrep: Look at all ancestors in --ignore-ancestorsChris Down2022-08-311-8/+8
| | | | | | | Previously we mistakenly only checked one previous level of the hierarchy. Signed-off-by: Chris Down <chris@chrisdown.name>
* pgrep: Add support for ignoring ancestors with -A/--ignore-ancestorsChris Down2022-08-311-1/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pgrep and friends naturally filter their own processes from their matches. The same issue can occur when elevating with tools like sudo or doas, where the elevating shim layers linger as a parent and are returned in the results. For example: % sudo pkill -9 -cf someelevatedcmdline 1 zsh: killed sudo pkill -9 -cf someelevatedcmdline This is a situation we've actually seen in production, where some poor soul changes how permission management works (for example with Linux's hidepid option), needs to elevate a pgrep or pkill call, and now ends up with more than they bargained for. Even after the issue is noticed, resolving it requires reinventing some of the pgrep logic, which is unfortunate. This commit adds the -A/--ignore-ancestors option which excludes pgrep's ancestors from the results: % sudo ./pkill -9 -Acf someelevatedcmdline 0 We looks at multiple layers of the process hierarchy because, while things like sudo only have one layer of shimming, some mechanisms (like those found in a typical container manager like those found in Docker or Kubernetes) may have many more. Signed-off-by: Chris Down <chris@chrisdown.name>
* skill: Update include location tooCraig Small2022-08-291-2/+2
| | | | | skill got missed in the main update as its not compiled by default.
* build-sys: Relocate lib/Craig Small2022-08-2913-15/+292
| | | | | | | | test files in lib go to src/tests include/ goes to local/ lib/*.c goes to local/ Signed-off-by: Craig Small <csmall@dropbear.xyz>
* build-sys: Relocate library to library/Craig Small2022-08-2912-25/+25
| | | | | | All the dependent programs needed to have their includes moved too Signed-off-by: Craig Small <csmall@dropbear.xyz>
* misc: Move all binaries to srcCraig Small2022-08-2931-0/+25485
*.c -> src/ ps/* src/ps/ top/* src/top/ Signed-off-by: Craig Small <csmall@dropbear.xyz>