Craig Small [Sun, 27 Nov 2011 11:56:13 +0000 (22:56 +1100)]
Use real name in NAME section for top manpage
Things like lexgrog and whatis and apropos need to look a the line in
the NAME section in the manpage. There used to be a macro there which
they don't understand.
lexgrog top.1
top.1: parse failed
Craig Small [Sun, 27 Nov 2011 11:47:17 +0000 (22:47 +1100)]
vmstat -p <part> works and updated version to 3.3.1
configure.ac now set to 3.3.1
vmstat -p has not worked for a long time, this applies Debian patch
vmstat_part_format, the details:
Author: Daniel Novotny
Description: The contents of /proc/diskstats have changed since 2.6.25
Changed PATH_MAX to 32 because its missing on hurd
Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=485243
Bug-Debian: http://bugs.debian.org/588677
Last-Update: 2010-11-17
Jim Warner [Fri, 28 Oct 2011 12:30:48 +0000 (07:30 -0500)]
build-sys: ensure consistent procps-ng ncurses
. 1 program uses curses (top)
. 2 programs use ncurses (slabtop, watch)
. all 3 include non-wide <curses.h> or <ncurses.h>
. those 3 do not currently need wide support
. but anticipating nls, we link against libncursesw
This patch ensures an environment consistent with current
and future ncurses needs.
Craig Small [Wed, 26 Oct 2011 11:31:48 +0000 (22:31 +1100)]
Some tweaks for top
tweaked signal setup valgrind complaint as nls
some input error messages made more descriptive
eliminated audible escape a from all error messa
added include of proc readproc.h to top.h
optimization for show_special function
remove unnecessary variables clang analyze
Craig Small [Fri, 7 Oct 2011 03:35:16 +0000 (14:35 +1100)]
Use 7 cpu numbers not 4 for Hertz Hack
For the small number of devices that we cannot get Hertz out of ELF
notes but the cpu numbers make sense (ie not kFreeBSD) there is a hack
by using the CPU numbers. The problem is there was 4 numbers, now there
are 7. This fixes the hack by adding all 7 to get a more correct number.
This is from Debian patch sysinfo_7_numbers
Bug-Debian: http://bugs.debian.org/460331
Craig Small [Thu, 6 Oct 2011 23:22:24 +0000 (10:22 +1100)]
Fix Hertz calculation for FreeBSD
FreeBSD has no good way of finding the Hertz value. ELF notes don't
work, you can't find it in a function and even asm/params.h does
not have it. Lucky for us, it is always 100.
Based upon Debian patch patch sysinfo_kfreebsd_hertz by Petr Salinger
Bug-Debian: http://bugs.debian.org/460331
Caution, 460331 has lots of overlapping bugs all around the Hertz
problem across many arches.
Craig Small [Thu, 6 Oct 2011 23:08:42 +0000 (10:08 +1100)]
Elf note AT_CLKTCK is only found on Linux
Suppresses a message about elf notes not found on non-Linux systems.
kFreeBSD systems, for one, don't have this so the message appears
every time you run a procps program otherwise.
Based upon Debian patch sysinfo_elfnote by Petr Salinger
Bug-Debian: http://bugs.debian.org/378157
Sami Kerola [Mon, 26 Sep 2011 20:27:34 +0000 (22:27 +0200)]
build-sys: sensible errors when autogen.sh requirements are is missing
<quote="Jim">
I tested the build on several "new" linux installs that didn't yet have any
development tools beyond gcc. On those systems the following error messages
were received:
./autogen.sh: line 46: libtoolize: command not found
./autogen.sh: line 47: test: =: unary operator expected
</quote>
This commit also removes few unnecessary empty lines, and makes all shell
variables to be wrote in caps & quoted properly.
Cc: Jim Warner <james.warner@comcast.net> Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Jim Warner <james.warner@comcast.net> Signed-off-by: Craig Small <csmall-procps@enc.com.au> Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Jim Warner [Thu, 22 Sep 2011 09:10:05 +0000 (04:10 -0500)]
build-sys: use AC_HEADER_STDBOOL in configure.ac
The AC_CHECK_HEADER_STDBOOL, which was used earlier, requires
autoconf 2.68 (2010-09-22), without great functional benefit in
comparison AC_HEADER_STDBOOL. The only thing newer macro does is
a problem for many user who has older autoconf in use.
Craig Small [Mon, 12 Sep 2011 12:18:23 +0000 (22:18 +1000)]
added ps etimes, miscellaneous top enhancements
ps program
. etimes added for ELAPSED expressed in seconds
. time_t used in place of former unsigned long
top program
. corrected scroll message bug when 'x' toggle on
. fixed forest view potential missing libflags bug
. improved 'k' default signal invocation logic
. enhanced logic for %CPU maximums displayed
. made signal handling more robust and efficient
Craig Small [Wed, 17 Aug 2011 11:01:35 +0000 (21:01 +1000)]
added tgid support plus miscellaneous cleanup
ps
. added tgid support
. made process/task naming consistent
top
. added tgid support
. standardized pid related width logic
documents
. added tgid to ps & top man documents
library
. fixed OOMEM_ENABLE readtask bug
. corrected header typo for tgid
Craig Small [Wed, 10 Aug 2011 21:42:14 +0000 (07:42 +1000)]
refined library i/f and improved performance
Library changes
readproc
. added readeither to more efficiently
fill both process and thread proc_t
. added readproctab3, uses readeither
. included task path support in:
fill_cgroup_cvt, fill_cmdline_cvt,
read_unvectored
. QUICK_THREADS #define allows copying
process info vs. repeatedly reading
. simple_nexttid no longer values ppid
. path var made non-static in readtask
. documented 'proc_data_t' in .h file
. tweaked some c comments & formatting
library.map
. added new readeither, readproctab3
Program changes
ps
. exploits readproctab3 where possible
. improved args/comm compliance
top
. exploits readeither
Craig Small [Mon, 1 Aug 2011 11:28:46 +0000 (21:28 +1000)]
supgid/supgrp support, improved library interface
Library changes
readproc
. added support for supplementary groups
. eliminated 2 potential mem leak sources
. shortcut used for multi-threaded str
vectors & ptrs was obsoleted
. freeing of proc_t related dynamic
memory now rests with the library
. standardized/normalized many c comments
sysinfo
. corrected note regarding glibc & cpuinfo
library.map
. made the visible freeproc accessable
Program changes
pmap
. initialized buffer for new readproc i/f
. eliminated now obsolete free() call
ps
. added width aware supgrp support
. initialized buffers for new readproc i/f
. eliminated now obsolete free() calls
top
. added supgrp support as variable width
. eliminated now obsolete free() calls
. expoilted library freeproc function
. corrected -h|v args text & spacing
. updated some c comments
Documentation changes
ps.1
. added supgid and supgrp
top.1
. added supgid and supgrp
. addition of above required renumbering
many fields in section 3a. DESCRIPTIONS
Jim Warner [Thu, 23 Jun 2011 13:45:09 +0000 (15:45 +0200)]
miscellaneous top program/man document cleanup
Program changes
. corrected eolcap handling if EQUCOLHDRYES defined
. added missing terminator for OOMEM_ENABLE comment
. tightened logic in display_fields
. eliminated some warnings via type or cast
. updated miscellaneous source comments
Man Document changes
. corrected/expanded CGROUPS narrative
. standardized/normalized PPID narrative
Sami Kerola [Sun, 5 Jun 2011 10:17:14 +0000 (12:17 +0200)]
build-sys: add contrib directory
Move files that are not compiled to <build-root>/contrib
directory. The files consist two unmaintained commands,
alternative ps & w, and and broken utmp examination / printing
utility. The dummy.c became unnecessary at the point when
autotools where re-introduced.
Sami Kerola [Sat, 4 Jun 2011 14:26:58 +0000 (16:26 +0200)]
build-sys: take autotools in use again
This will revert change at Oct 2002 when autotools support was
removed.
Unlike before the package developers are expected to use
./autogen.sh to generate ./configure script, and run make after
that. The build system is also able to create, with make dist, a
tar ball release which compiles correctly, and has files which
seemed to be important to have.
The patch removes few unnecessary files, but no everything. Files
procps.lsm and procps.spec in git repository are useless as is,
but I left them lying around for someone who can make more
justified call about removal of them.
Last, but not least package version number is set 3.3.0 to
distinct this procps from the sourceforge's upstream procps.
Please notice that libproc relese is kept as 3.2.8.
Jim Warner [Thu, 26 May 2011 09:33:32 +0000 (11:33 +0200)]
added output width/height override support to top, + misc
This source patch addresses the following:
Enhancements
. added -w command line switch, with optional argument
( offers complete control over width and height, in )
( combination with env variables COLUMNS= and LINES= )
. updated man document to reflect the new capability
. reengineered Fields Management to be more flexible
thus no longer requiring a normal sized tty
Buglets fixed
. forced View_SCROLL off when in 'Batch' mode
. for narrow xterm, fixed return val in show_pmt
. for narrow xterm, fixed cursor pos in linein
. added a window specific end-of-line termcap ptr
( so clr_eol does not overwrite last printable char )
Cosmetic changes
. eliminated TTYGETENVYES define, incorporated as -w
. eliminated RESIZE_LIMIT define, no longer needed
. eliminated FIELD_CURSOR define, no longer possible
. eliminated extra text on Fields Management screen
. fixed miscellaneous man document typos/formatting
Jim Warner [Wed, 18 May 2011 08:33:44 +0000 (10:33 +0200)]
enhanced libproc cgroup/cmdline support, exploited by top
Library Changes
. added PROC_EDITCMDLCVT flag
. added an internal (static) fill_cmdline_cvt function:
- reads and "escapes" /proc/#/cmdline
- returns result as a single string in a single vector
- callers are guaranteed a cmdline (no more NULL)
. added vectorize_this_str function, exploited by
fill_cgroup_cvt, fill_cmdline_cvt
. generalized read_cmdline function as read_unvectored, now
exploited by fill_cgroup_cvt, fill_cmdline_cvt, read_cmdline
( cgroup and cmdline no longer need be converted to string )
( vectors before being transformed to final representation )
. fixed bug regarding skipped group numbers (when enabled)
. escape_str made responsible for all single byte translation
with distinction between control chars + other unprintable
. added escaped_copy function for already escaped strings
. reorganized parts of proc_t to restore formatting standards
( displacement changes shouldn't matter with new version # )
. former ZAP_SUSEONLY #define now OOMEM_ENABLE
. added to library.map: escaped_copy; read_cmdline
Top Program Changes
. exploited the new PROC_EDITCMDLCVT provision
. eliminated now obsolete #include "proc/escape.h"
. changed the P_WCH display format if no kernel symbol table
. fixed very old bug in lflgs for out-of-view sort fields
. former ZAP_SUSEONLY #define now OOMEM_ENABLE
Ps Program Changes
. exploited the new PROC_EDITCMDLCVT provision
. exploited the new escaped_copy function
. consolidated pr_args and pr_comm into pr_argcom
Jim Warner [Thu, 5 May 2011 10:07:25 +0000 (12:07 +0200)]
cgroup support migrated to libproc, plus miscellaneous re-formatting
This source patchset addresses the following:
Library Extension (readproc)
. added PROC_EDITCGRPCVT flag
. added an internal (static) fill_cgroup_cvt function:
. reads AND parses /proc/#/cgroup
. returns result as a single string in a single vector
. thus no changes to proc_t structure or free memory logic
Program Enhancements (top)
. removed parse_cgroup logic in favor of libproc
. eliminated cgroup sort recurring overhead
. converted WCHAN field to variable width
. generalized variable width field logic in task_show
. real-time notation under P col more distinctive as 'rt'
Program Cosmetic (top)
. CGROUP now known as CGROUPS (plural)
. moved jan's attribution from top.c to 'Notes' in top.h
. numerous comments tweaked
Document Enhancements (top)
. documented CGROUPS field (required renumbering all fields)
. adapted narratives for the 3 current variable width fields
. expanded real-time scheduling notes, 'RT' now shown as 'rt'
Sami Kerola [Mon, 18 Apr 2011 17:30:20 +0000 (19:30 +0200)]
free: great modernization
Support long options, use program_invocation_short_name, print
version up on request, new giga & tera byte sizes switches, exit
when numeric arguments has garbage... and for rest see the diff.
Craig Small [Thu, 14 Apr 2011 23:24:29 +0000 (09:24 +1000)]
cgroup support. rcfile errors default to fatal
This source patch addresses the following:
Conceivable Buglets Avoided
. added sanity checks for previous assumptions re: pid size, num cpus
. changed response for rcfile errors to fatal, vs. silent default
Enhancements
. reorganized WIN_t struct for reduced padding and better readability
. generalized code for multiple var-width cols (divorced from pflags)
. absorbed jan gorig's cgroup patch, with attribution
Cosmetic
. reduced numerous #ifdef directives, especially in calibrate_fields
Craig Small [Wed, 13 Apr 2011 21:08:14 +0000 (07:08 +1000)]
several bug fixes, enhancements and formatting
The documentation portion of the patch addresses the following:
README.top
. corrected a minor typo
. updated to reflect current patch level
top.1
. fixed potentially misinterpreted Me/ME strings
. added '.Bd -literal' directives for indented fixed-width font
. some comments changed from \# to .\" to avoid man2html problems
The source portion of the patch addresses the following:
Buglets
. header/task output length now consistent
. fixed 2 obscure horizontal scrolling bugs
. fixed potential bug regarding 'help' and 'current' window
. messages and prompts are now also sensitive to terminal width
. normalized buffer names/sizes now accommodate any SCREENMAX changes
Features
. made %CPU and 'i' mode handling more efficient
. for input the Up/Dn arrows keys act as alternatives to Ins/Del keys
. an optional USE_X_COLHDR define eliminates ALL 'x' toggle overhead
. an optional ZAP_SUSEONLY define was added for Werner's modifications
Cosmetic
. defines and format for optional end-of-job reports standardized
Jan Görig [Thu, 16 Dec 2010 09:30:39 +0000 (10:30 +0100)]
Read the system boot time from /proc instead of computing
Read the time of system boot from /proc/stat (entry: btime) instead
of computing it as the difference between the current time and the
uptime. This is the only way to get a consistent result which won't
possibly change from one run to the next.
The problems with the original code were:
* Both the current time and the uptime are rounded down to the second,
but the system doesn't boot on an integer second value so they do not
tick at the same moment. Thus, the rounding errors can cause a one
second difference from one run to the next.
* We can't read the uptime and the current time at the exact same moment
anyway, so the time difference we compute is bound to be inaccurate.
Bug-Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=222251
Author: Jean Delvare <jdelvare@suse.de> Reviewed-by: Craig Small <csmall@debian.org>