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>
COMPATIBILITY This code is intended for use with Linux 2.6.xx, 3.x and hopefully all future kernels. INSTALLATION If you are using git version of the project you need extra step. ./autogen.sh After that, and everyone using .tar.xz version of procps-ng, can do normal build. Read './configure --help' to select options for your needs. ./configure make make install If you have DejaGNU installed you can run optional test suite. make check HOW TO CONTRIBUTE See Documentation/BUGS file. PACKAGING If you are a downstream maintainer (packager) for a Linux distribution, please avoid causing troubles. This section applies to you. Avoid maintaining distribution specific patches. Send your patches to upstream, where they are at least reviewed, if not included. Please forward bug reports. If your bug database is public and busy enough to bother with, please make this known. Follow Debian's lead in making the bug database easy to comment on via email without need for an account. For normal packages, ensure that you do not add debugging flags to the CFLAGS variable. UPSTREAM & BUG REPORTS procps-ng <procps@freelists.org>
Description
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.
Languages
C
97.2%
Makefile
1%
Shell
0.9%
M4
0.9%