Commit Graph

87 Commits

Author SHA1 Message Date
Enji Cooper
5c014d5fa9 MFC r300395:
Silence top(1) compiler warnings

The contrib/top code is no longer maintained upstream (last pulled 16 years
ago). The K&R-style followed by the code spews -Wimplicit-int and -Wreturn-type
warnings, amongst others. This silences 131 warnings with as little modification
as possible by adding necessary return types, definitions, headers, and header
guards, and missing header includes.

The 5 warnings that remain are due to undeclared ncurses references. I didn't
include curses.h and term.h because there are several local functions and macros
that conflict with those definitions.
2016-06-12 05:57:42 +00:00
Enji Cooper
5004287b55 MFC r300714:
The readme provides a high-level overview of how to upgrade top(1).

Reviewed By: ngie
2016-06-08 18:15:51 +00:00
Marcel Moolenaar
325578bda4 MFC 284165:
Move contrib/top/top.X to contrib/top/top.xs and move
contrib/top/top.local.H to contrib/top/top.local.hs.
Change the makefile accordingly.
2015-06-17 02:30:12 +00:00
Bryan Drewery
c79d4d1c24 MFC r265249,r265250,r265251:
- Add -J command/flag to filter by jail name/jid. This will automatically
      display the JID as well (the -j command/flag).
    - Add a hint for 'u' and 'J' command that '+' displays all.
    - Add J command to help.
2014-05-17 02:39:20 +00:00
Rui Paulo
07fb19177d Bump MAX_COLS to 512 to take advantage of wider terminals. 2012-12-13 06:45:45 +00:00
Rui Paulo
2c141bfc43 Add "pid" to the help menu (sort keys section). 2012-11-11 08:22:58 +00:00
John Baldwin
2e52fb92ff Add a new line to top that provides a brief summary of the ZFS ARC memory
usage on hosts using ZFS.  The new line displays the total amount of RAM
used by the ARC along with the size of MFU, MRU, anonymous (in flight),
headers, and other (miscellaneous) sub-categories.  The line is not
displayed on systems that are not using ZFS.

Reviewed by:	avg, fs@
MFC after:	3 days
2012-06-27 18:08:48 +00:00
Konstantin Belousov
d9514f6739 In batch mode, exit after receiving SIGINT, instead of immediate
output of the next display.

Submitted by:	Andrey Zonov <andrey zonov org>
MFC after:	1 week
2012-03-07 18:05:45 +00:00
Konstantin Belousov
963a74f13c Fix a race in top non-interactive mode. Use plain sleep(3) call instead
of arming timer and then pausing.  If SIGALRM is delivered before pause(3)
is entered, top hangs.

Submitted by:	Andrey Zonov <andrey zonov org>
MFC after:	1 week
2012-02-27 20:52:20 +00:00
John Baldwin
fcc3d62fa5 Rework the dynamic per-CPU stats code a bit. Always set 'statics->ncpus'
to the maximum number of CPUs to ensure that lcpustates[] array is always
allocated to the maximum size.  Previously, if top was started without
per-CPU stats it would allocate a smaller lcpustates[] array.  When
per-CPU stats were then enabled, it would overflow the array and trash
the cpustates_columns[] array causing the CPU stats to be printed in the
wrong locations.

Approved by:	re (kib)
MFC after:	1 week
2011-07-18 21:15:47 +00:00
John Baldwin
834377fe2d Tweak the interactive description of CPU vs WCPU.
PR:		bin/158819
Submitted by:	arundel
Approved by:	re (kib)
2011-07-18 21:08:14 +00:00
John Baldwin
4702b8d2c0 Add a leading space to the status messages output after toggling the
'C' and 'H' flags at runtime.  This matches messages output for other
toggles which leave the first column in the message blank to hold the
cursor.

PR:		bin/158775
Submitted by:	arundel
MFC after:	3 days
2011-07-11 16:51:29 +00:00
John Baldwin
51f202e9ed Allow per-CPU statistics to be toggled at runtime via the 'P' key.
While here, make -P a toggle similar to other options such as -I.

Reviewed by:	arundel
MFC after:	1 week
2011-07-11 16:48:52 +00:00
John Baldwin
18abed0c9b Note that -a, -C, -H, -j, and -z are also toggles.
PR:		bin/158682
Reported by:	arundel
MFC after:	3 days
2011-07-08 13:45:53 +00:00
Xin LI
7afed3bf78 Revert r214857 pursudant to 9.0-RELEASE cycle.
Requested by:	jh
2011-06-20 16:48:00 +00:00
John Baldwin
35b23f5d86 - Document the -H option and 'H' key alongside other options and keys
rather than at the bottom of the manpage.
- Remove an obsolete comment about SWAIT being a stale state.  It was
  resurrected for a different purpose in FreeBSD 5 to mark idle ithreads.
- Add a comment documenting that the SLEEP and LOCK states typically
  display the name of the event being waited on with lock names being
  prefixed with an asterisk and sleep event names not having a prefix.

MFC after:	1 week
2011-05-31 15:41:10 +00:00
John Baldwin
c9385548e7 Add a new option to toggle the display of the system idle process (per-CPU
idle threads).  The process is displayed by default (subject to whether or
not system processes are displayed) to preserve existing behavior.  The
system idle process can be hidden via the '-z' command line argument or the
'z' key while top is running.  When it is hidden, top more closely matches
the behavior of FreeBSD <= 4.x where idle time was not accounted to any
process.

MFC after:	2 weeks
2011-05-31 15:11:23 +00:00
John Baldwin
f69c3436ee Output an appropriate amount of padding to line up per-CPU state columns
rather than using a terminal sequence to move the cursor when drawing the
initial screen.

Requested by:	arundel
MFC after:	3 days
2011-02-01 15:48:27 +00:00
Sergey Kandaurov
67fe5233fc Add 'jid' as a possible sort order to the help screen.
PR:		bin/150992
Submitted by:	Frederic Culot <frederic at culot dot org>
Approved by:	avg (mentor)
MFC after:	5 days
2010-11-12 16:50:11 +00:00
Xin LI
584e07b573 Inverse display of top(1)'s table header when running in inactive mode.
MFC after:	2 weeks
2010-11-06 03:59:21 +00:00
Rebecca Cran
2ab8e45eb8 Since top displays the uptime including seconds, there is no need to add 30
onto it, which may have been used for rounding purposes in other utilities.

PR:	bin/147934
Submitted by:	Janne Snabb <snabb at epipe.com>
Approved by:	rrs (mentor)
MFC after:	2 weeks
2010-08-17 09:51:08 +00:00
Rui Paulo
247cd15268 Make these files compile with clang.
Submitted by:	Dimitry Andric <dimitry at andric.com>
2010-07-22 18:52:29 +00:00
Nathan Whitehorn
3560b8af1f Fix brokenness in top on big-endian 32-bit systems introduced when
changing format_k2 to take a long long. Because itoa is defined as a K&R
C function, without prototyping its arguments, format_k2 passed a 64-bit
value, but itoa() received only the first word, showing '0' in all memory
fields.
2010-04-19 14:34:44 +00:00
Rebecca Cran
c4103be40d Specify the parameter in the format_k2 prototype.
This fixes top on ARM, which assumes that format_k2 takes an int.

Approved by:	rrs (mentor)
2010-04-01 21:20:19 +00:00
Rebecca Cran
e9db446223 Change the 'amt' parameter in format_k2 from int to unsigned long long
to match the values passed in and prevent the SIZE field being corrupted
when more than 2TB is allocated.

PR:		bin/129706
Approved by:	rrs (mentor)
MFC after:	1 week
2010-03-13 11:17:39 +00:00
Ed Schouten
2d86428bba Let top(1) use MAXLOGNAME instead of UT_NAMESIZE.
The maximum user login length should have nothing to do with <utmp.h>.
2009-12-25 09:02:41 +00:00
John Baldwin
fcaeaff4b6 Explicitly line up the CPU state labels with the calculated starting column
that takes into account the width of the largest CPU ID.  On systems with
> 10 CPUs the labels for the first 10 CPUs were not lined up properly
otherwise.

Approved by:	re (kib)
MFC after:	1 week
2009-08-19 15:17:13 +00:00
Robert Watson
5643f3fc50 Merge r183430 from vendor/top/dist to head/contrib/top, although with
record-only mergeinfo because an automated merge is confused by the
flattening that took place:

  Move install to install-sh to prevent name-clashes.

MFC after:	3 days
2009-03-10 11:46:41 +00:00
Edwin Groothuis
3e0c556084 Move install to install-sh to prevent name-clashes. 2008-09-28 08:11:11 +00:00
Ruslan Ermilov
cd83aa9707 Removed the no-op -p; documented -P.
MFC after:	3 days
2008-06-21 15:48:16 +00:00
Ruslan Ermilov
d3bf3b9a7a system_info.cpustates isn't sparse, so a bitmask of available CPU states
is redundant (I think it's a leftover from an older implementation).
2008-04-11 11:39:26 +00:00
Peter Wemm
031175705e Add a -P flag to display per-cpu cpu usage stats. 2008-01-18 01:43:14 +00:00
David E. O'Brien
dbb2956620 Improve -u (limit uid lookups) behavior.
Submitted by:	David Frascone <dave@frascone.com>
PR:		119490
2008-01-09 18:06:24 +00:00
Rong-En Fan
d3abf70e1b - s/jail id/jail ID/, acronyms should be in uppercase in general. Also,
it is written this way in jail(8).

Suggested by:	brueffer
Approved by:	delphij (mentor, implicit)
2007-05-04 15:42:58 +00:00
Stanislav Sedov
679420161d - Add documentation notes for the 'a' option, forgotten in the previous
commit.

  commands.c [1]
  top.X

Suggested by:	rafan [1]
2007-05-03 22:17:35 +00:00
Rong-En Fan
926a99d402 - Add new 'a' and 'j' options into usage
Approved by:	delphij (mentor, implicit)
Forgotten by:	stas ('a') and rafan ('j')
2007-04-19 14:24:54 +00:00
Rong-En Fan
6000ced11b - Add a new 'j' switch and runtime option to toggle display jail id for
each process.
- While I'm here, keep help message sorted by keys

PR:		98489, 98975
Submitted by:	clsung
Approved by:	delphij (mentor)
MFC after:	2 weeks
2007-04-17 03:12:39 +00:00
Stanislav Sedov
faac60c8fc - Add new 'a' switch and runtime option that allows 'top' to display process
titles extracted from argv vector instead of the real executable names.
  This is useful when you want to watch applications that set their status
  information via setproctitle(3).

Approved by:	alfred
MFC after:	2 weeks
2007-04-14 10:16:52 +00:00
Giorgos Keramidas
d2d6d8d537 The sigconv.awk script generates a sigdesc.h header file, which
contains a sigdec[] vector of structures, but the generated output is
missing braces around the initializer of each struct, which
triggers warnings in WARNS=3:

src/usr.bin/top/sigdesc.h:10: warning: missing braces around initializer
src/usr.bin/top/sigdesc.h:10: warning: (near initialization for `sigdesc[0]')

  * Fix the sigconv.awk script to generate a header with initializers
    which look better.

  * Add rules to usr.bin/top/Makefile that rebuilds a new sigconv.h
    header which matches the correct signal set from the build-time
    version of `${DESTDIR}/usr/include/signal.h' (so sigconv.h doesn't
    get stale once changes are made to the header).

  * Remove the old sigconv.h header, now that it is autoupdated at
    build time.

  * Various Makefile style fixes (the committed Makefile was kindly
    submitted by Ruslan):

    - Reorder .PATH, PROG, SRCS and CFLAGS to match style.Makefile(5)
    - Split off the generated sources (sigdesc.h top.local.h) in an
      SRCS+= line of their own.
    - Add entries to CLEANFILES near the rules that generate the
      respective files.
    - Move the explicit rule which builds top.1 after the implicit
      rules which generate its dependencies.

Reviewed by:	ru, bde
Submitted by:	ru (Makefile)
MFC after:	2 weeks
2006-12-01 07:01:19 +00:00
Giorgos Keramidas
d9c49a535a Update the description of the `STATE' column for SMP systems,
and add the missing `C' SMP-only column.

PR:		docs/29245
Submitted by:	ada@bsd.org
Patch by:	Pawel Worach <pawel.worach@telia.com>
MFC after:	3 days
2006-05-16 15:27:43 +00:00
Ruslan Ermilov
c8e1eaa0a4 Re-add option -C to usage(). 2006-04-19 12:19:06 +00:00
Giorgos Keramidas
4ced3fbbf1 Document the -C option of top(1), which has been added to the source
and the usage message of top, but not to the manpage.

Pointy hat to:  keramida
Reminded by:    ru
MFC after:      1 week
2006-04-19 11:47:51 +00:00
Ruslan Ermilov
7734a577e3 Bring SYNOPSIS in line with usage(). 2006-04-18 15:26:58 +00:00
Giorgos Keramidas
5967e9a271 Typo.
PR:		docs/88015
Submitted by:	Marian Cerny <jojo@matfyz.cz>
MFC after:	3 days
2005-10-26 12:07:23 +00:00
Giorgos Keramidas
3c2ab2b0ec The 'text' argument of u_header() is not used, so we don't need to
trim_header() it.

Noticed by:	bde
2005-05-19 13:34:19 +00:00
Giorgos Keramidas
cd660671ce Properly trim the header line too, to fix wrap-around problems that
have been noticed by running top(1) in terminals that are too narrow
(or on systems with usernames that were too long, pushing everything
too far to the right).

Note that this does *not* solve the wrap-around problem of the system
statistics, which is an entirely different matter :-/

Tested on:	i386, sparc64 (panther), amd64 (sledge)
Approved by:	davidxu (in principle)
2005-05-18 13:48:33 +00:00
Giorgos Keramidas
bbf750fbff Merge the CPU and WCPU columns in a single %6.2f column, add a new 'C'
command that toggles between the two and update the ORDER_PCTCPU()
macro to sort correctly by the visible "cpu" value.

This saves 6 more columns in 80-column terminals, making things a lot
better for the COMMAND column.

Tested on:	i386, sparc64 (panther), amd64 (sledge)
Approved by:	davidxu (in principle)
2005-05-18 13:30:08 +00:00
Giorgos Keramidas
32efd26355 - Add a THR column to the process listing, that shows the number of
threads a process has.  The THR column is disabled and disappears
  when 'H' is hit, because then every thread gets its own output line.
- Allow sorting processes by "threads".

Approved by:	davidxu
Inspired by:	Jiawei Ye <leafy7382@gmail.com>
2005-04-14 15:02:03 +00:00
Christian Brueffer
28d223bdcb Correct macro usage.
Submitted by:	Christoph Mallon <christoph.mallon@gmx.de>
MFC after:	3 days
2005-03-13 13:37:02 +00:00
Alfred Perlstein
5d320d4b95 This patch merges the sort fields for both pages, so you can (for
example) view io stats while sorting by process size.  Also adds
voluntary and involuntary context-switch stats to the io page because
there was lots of room.

Submitted by: Dan Nelson dnelson at allantgroup.com
2004-08-16 07:51:22 +00:00