Commit Graph

36 Commits

Author SHA1 Message Date
Kirk McKusick
1f7d250182 Change the proc information returned from the kernel so that it
no longer contains kernel specific data structures, but rather
only scalar values and structures that are already part of the
kernel/user interface, specifically rusage and rtprio. It no
longer contains proc, session, pcred, ucred, procsig, vmspace,
pstats, mtx, sigiolst, klist, callout, pasleep, or mdproc. If
any of these changed in size, ps, w, fstat, gcore, systat, and
top would all stop working. The new structure has over 200 bytes
of unassigned space for future values to be added, yet is nearly
100 bytes smaller per entry than the structure that it replaced.
2000-12-12 07:25:57 +00:00
John Baldwin
7f18d5d343 Make use of the full screen width to display p_comm rather than assuming a
hardcoded screen width of 80 chars.
2000-11-29 23:03:02 +00:00
John Baldwin
089f9b7e2f Display the name of the mutex we are blocked on in the state field. To
differentiate mutex names from wait channel names, prefix mutex names with
an asterisk.

Submitted by:	Dan Nelson <dnelson@emsphone.com>
2000-11-29 20:22:34 +00:00
Jason Evans
0384fff8c5 Major update to the way synchronization is done in the kernel. Highlights
include:

* Mutual exclusion is used instead of spl*().  See mutex(9).  (Note: The
  alpha port is still in transition and currently uses both.)

* Per-CPU idle processes.

* Interrupts are run in their own separate kernel threads and can be
  preempted (i386 only).

Partially contributed by:	BSDi (BSD/OS)
Submissions by (at least):	cp, dfr, dillon, grog, jake, jhb, sheldonh
2000-09-07 01:33:02 +00:00
David Nugent
dc7c1750c2 Reduce max length of user names to 15 characters to reflect reality.
This also prevents the line-wrap and messed up display that occurs
when there happens to be one or more names with 15 chars.
1999-11-17 16:31:51 +00:00
Bruce Evans
a8224b82fd Fixed sorting on time. On i386's, time differences of more than 2147
seconds caused overflow.  Use a type-safe but slightly slower comparison.
Comparisons for other fields are still fragile.

Fixed rounding of cputime (don't do extra work to get it slightly wrong
by first converting without rounding to milliseconds).

Removed dead code for setting cputime.

Fixed comments about cputime.
1999-11-17 03:25:54 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Nick Hibma
33d56839e3 Man pages for top refer to only 2.x, but not to 3.x and later 1999-06-14 12:06:11 +00:00
Peter Wemm
bf0e1ee370 Tidy up references to <sys/rlist.h> and support for the old swap management
that went away in January.
1999-05-11 14:32:18 +00:00
John Hay
e7f807a217 Fix the display of the "nice" value of processes like ntpd that use the
posix sched_setscheduler() to set their priority.

Noticed by:	Mark Allwright <mallwri@orion.didata.co.za>
1999-04-22 14:34:53 +00:00
Bruce Evans
6bc6d9631d Oops, the test for "no-cpu" was inverted.
Submitted by:	Seigo TANIMURA <tanimura@naklab.dnj.ynu.ac.jp>
1999-03-07 06:55:47 +00:00
Bruce Evans
efc96764e0 The magic "no-cpu" cpu number is 0xff. Don't misrepresent cpu
numbers as chars or use bogus casts in an attempt to unmisrepresnt
them.  In top, don't assume that 0xff is the only negative cpu
number when cpu numbers are (mis)represented.
1999-03-05 16:38:13 +00:00
Bill Fenner
1005b43609 Don't dump core when p_stat is not in the expected range. This is
only likely to happen when you have a kernel<>userland mismatch,
but it's really annoying when top dumps core and leaves the terminal
in a mangled state; it's much nicer to print nicely formatted gibberish.
1999-02-06 16:58:50 +00:00
Matthew Dillon
47b370f5c6 Make 'top' handle case w/ new swapper where no swap is configured 1999-02-06 06:33:55 +00:00
Matthew Dillon
7bb42db9e7 Make top use new kvm_getswapinfo() call. 1999-01-22 11:09:41 +00:00
David E. O'Brien
a2641311ff uptime display more in style with original code 1999-01-09 20:25:02 +00:00
Bruce Evans
c13e5fb799 Removed unused nlist'ed variables stathz and hz. These used to be used
to half compensate for broken scaling of p_pctcpu in the kernel, but the
previous commit removed this compensation.  %cpu values will be wrong by
a factor of stathz/hz until the kernel is fixed.  (The kernel gets it
wrong by a factor of stathz/hz, and top got the compensation wrong by
a factor of 100/stathz.)
1998-11-26 12:59:21 +00:00
Doug Rabson
d24b518319 Port top to the alpha.
Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
1998-11-25 09:45:28 +00:00
Dmitrij Tejblum
00e500a2e5 Some fixes for swap space accounting.
Obtained from:  pstat.c
1998-09-11 14:38:12 +00:00
Wolfram Schneider
f3b2c2d1d3 Merge from stable: support for the o, order, command 1998-08-12 09:58:15 +00:00
Dag-Erling Smørgrav
e7cdb97253 Add -t option ('t' in interactive mode) to make top(1) ignore itself.
Attempts to contact the author of top(1) (William LeFebvre) have so
far been unsuccessful.

PR:		7253
Submitted by:	Yours Truly
1998-08-04 14:10:48 +00:00
Wolfram Schneider
4dc0ec1db1 Round - not cut - the real cpu time. 1998-07-27 12:21:58 +00:00
Dmitrij Tejblum
8fbaa58a29 Make value of SIZE accurate.
Obtained from:	ps(1)
1998-06-21 18:00:34 +00:00
Poul-Henning Kamp
e796e00de3 Some cleanups related to timecounters and weird ifdefs in <sys/time.h>.
Clean up (or if antipodic: down) some of the msgbuf stuff.

Use an inline function rather than a macro for timecounter delta.

Maintain process "on-cpu" time as 64 bits of microseconds to avoid
needless second rollover overhead.

Avoid calling microuptime the second time in mi_switch() if we do
not pass through _idle in cpu_switch()

This should reduce our context-switch overhead a bit, in particular
on pre-P5 and SMP systems.

WARNING:  Programs which muck about with struct proc in userland
will have to be fixed.

Reviewed, but found imperfect by:       bde
1998-05-28 09:30:28 +00:00
Peter Wemm
373e363e34 Fix top sorting of idle processes. top used p_cpticks as a tie-breaker
but that isn't suitable (it gets zeroed each second apparently).

PR: bin/4957
Submitted-by: Dan Nelson <dnelson@emsphone.com>
1998-02-14 13:34:59 +00:00
Steve Passe
cb52d9ccc5 For SMP, add a space between the state name and the CPU#.
Everything following bumps right 1 character.
1997-10-05 21:20:56 +00:00
Peter Wemm
e5aff02f68 YAMF22: (rev 1.3.2.2) Display realtime and idle priorities appropriately. 1997-09-28 00:59:04 +00:00
Peter Wemm
ed550569a2 Adapt to recent smp tree changes.. 1997-08-27 03:48:25 +00:00
Bruce Evans
745ec60f07 Added top.1 to CLEANFILES. 1997-07-21 16:06:00 +00:00
Peter Wemm
a2aff8b2bd Hack to work around the large username field... scan for the largest
username present on the system at startup and use that for the field width.
It's not ideal but (I think) better than it was before.  The width is
limited to within 8..16.
1997-07-14 09:06:46 +00:00
Peter Wemm
94154ff82b Dynamically adapt to smp mode at runtime. This stops the cpu column
appearing on uniprocessor systems since the smp->current merge.
1997-07-12 10:51:54 +00:00
Andrey A. Chernov
595c8b2ff9 Long usernames fixes 1997-04-21 13:53:47 +00:00
Peter Wemm
524a8761b1 Tweak column headers a tad for when running in SMP mode. 1997-04-19 20:28:50 +00:00
Peter Wemm
aa9278ffa9 move top.1 -> top.local.1, and generate top.1 so that the man page
is remotely useful
1997-04-05 22:05:46 +00:00
Andrey A. Chernov
d9c406718c Remove libcurses, it is pure termcap application 1997-03-24 14:29:46 +00:00
Joerg Wunsch
511d9c6565 This is the FreeBSD-specific files for top, plus the Makefile
that pulls all the files from contrib.

Obtained from:	The ports collection (mostly).
1997-03-23 18:55:20 +00:00