Changeset View
Changeset View
Standalone View
Standalone View
contrib/top/FAQ
Property | Old Value | New Value |
---|---|---|
svn:keywords | FreeBSD=%H \ No newline at end of property | null |
TOP | TOP | ||||
Version 3.5 | Version 3.8beta1 | ||||
Beta Release 11 | |||||
William LeFebvre | William LeFebvre | ||||
with much help from others | with much help from others | ||||
Frequently Asked Questions and their Answers | |||||
FREQUENTLY ASKED QUESTIONS AND THEIR ANSWERS | |||||
This FAQ is broken out in to several topics. | |||||
GENERAL | GENERAL | ||||
1. "Where do I get the latest version of top?" | 1. What is top? | ||||
The official site for top is "ftp.groupsys.com" in the directory | Top provies the user with a regularly updated display showing | ||||
"/pub/top". It is also available from the following mirror sites: | information about the system and its top cpu-using processes. Think | ||||
"pharos.dgim.doc.ca" in /packages/top, "uiarchive.uiuc.edu" in | of it as a full-screen "ps" output that gets updated at regular | ||||
/pub/packages/top, "sunsite.auc.dk" in /pub/unix/top. European | intervals. | ||||
users should consider using the Denmark (dk) site. | |||||
2. "Is there a web page for top?" | 2. Where do I get the latest version of top? | ||||
Yes. Point your browser at http://www.groupsys.com/top. It includes | The official site for top is "ftp.unixtop.org" in the directory | ||||
all documentation, a nice interactive display which describes the | "/pub/top". Top is also a SourceForge project, and the most recent | ||||
various components of the output of top, web-based retrieval of the | releases are available on any of the SourceForge mirrors. The | ||||
package, year 2000 information, and pointers to the mailing list. | SourceForge project page is at | ||||
http://sourceforge.net/projects/unixtop. | |||||
3. "Is there a mailing list for top?" | 3. Is there a web page for top? | ||||
The official list for announcements is "top-announce@groupsys.com". | Yes. Point your browser at http://www.unixtop.org. It includes all | ||||
This list is managed by "majordomo@groupsys.com". Announcements of | documentation, a nice interactive display which describes the various | ||||
importance to all top users will be sent to this list, including new | components of the output of top, web-based retrieval of the package, | ||||
releases, availability of beta test versions, emergency revisions and | year 2000 information, and other neat stuff. | ||||
patches, etc. Anyone is welcome to join top-announce. This is a | |||||
read-only list. The list of subscribers will not (intentionally) be | |||||
made available, and postings to the list are limited. | |||||
In addition, there is a top developers mailing list that is used by | 4. Is there a mailing list or on-line bulletin board for top? | ||||
beta testers and other people who help me port the program to various | |||||
machines. Membership to this list is solely at my discretion. If you | |||||
feel qualified to act as a beta tester, or if you are doing development | |||||
work on top (such as porting to a new platform), you may submit a | |||||
request by sending a message to "top-spinners-request@groupsys.com" | |||||
containing the word "subscribe". I will contact you within a few days, | |||||
as my schedule permits. | |||||
4. "What about Year 2000 compliance"? | There is a mailing list used for general announcements regarding top, | ||||
including new releases. This mailing list is available to sourceforge | |||||
members and can be accessed from the unixtop sourceforge project | |||||
page. Visit SourceForge and search for the project "unixtop", then | |||||
click on "mailing lists". There are also on-line forums available | |||||
through SourceForge where members can post questions and comments. | |||||
Top should not experience any problems with the transition to the year | 5. What about Year 2000 compliance? | ||||
Top did not experience any problems with the transition to the year | |||||
2000. A full statement concerning top and the year 2000 can be found | 2000. A full statement concerning top and the year 2000 can be found | ||||
in the file "Y2K" included with the distribution. | in the file "Y2K" included with the distribution. | ||||
6. Will there be another major release of top? Will there be a top | |||||
version 4? | |||||
5. "Why does it take so long for a new version of top to go through the | I have some great ideas for the next major release of top, and I very | ||||
beta test process?" | much want to make those ideas a reality. What I don't have much of | ||||
these days is free time. But I will keep poking at it and I hope to | |||||
have top version 4.0 ready by the fall of 2006. | |||||
This is completely my fault. I have just not had the time to give top | 7. Does top really support multi-processor systems? | ||||
the attention it deserves. I thank everyone for their patience, and I | |||||
hope that with the recent changes in the direction of my career that I | |||||
can spend more time on this. | |||||
6. "Top is not written in ANSI C. Do you ever plan to change that?" | On platforms that support multiple processors, top is able to detect | ||||
and correctly summarize the information about those processors. What | |||||
top does not do is break down the cpu states summary (the third line | |||||
of the display) by cpu. Instead it collects the cpu state information | |||||
from all processors and combines them in to a single line. Some | |||||
vendors include a modified version of top that presents this | |||||
information for each cpu. Top 3.7 may have this functionality but it | |||||
is not present in the standard top 3.6 release. | |||||
Top predates ANSI C by about 5 years. Yeah, it'll get "fixed" eventually. | 8. Is top under CVS control? Can I access the sources via SourceForge | ||||
Probably in 3.6. | CVS or Subversion? | ||||
I maintain top using subversion, not CVS. Although I utilize my own | |||||
private subversion repository, it is regularly mirrored in to the | |||||
SourceForge Subversion repository. You can access the SourceForge | |||||
repository here: https://svn.unixtop.org/unixtop/top-3. | |||||
CONFIGURING | |||||
7. "Configure said that it saw /proc and is recommending that I install top | |||||
setuid root. Is there any way around this? Is it safe?" | |||||
There is no way around it. Complain to POSIX. Every effort has been made | |||||
to make top a secure setuid program. However, we cannot guarantee that | |||||
there are no security problems associated with this configuration. The | |||||
places where top is most vulnerable are the builtin kill and renice | |||||
commands. There is no internal top command that causes top to start a shell | |||||
as a subprocess. Some SVR4 systems may contain a bug that enables a user to | |||||
renice his own processes downward (to lower nice values that are more | |||||
favorable for the process). This problem has been fixed for the Solaris 2.x | |||||
modules, but may still exist in others. We will hopefully fix this up in | |||||
the next release. | |||||
8. "Why is Configure a c-shell script? I thought c-shell scripts were | |||||
evil?" | |||||
They are. :-) I'll probably be rewriting the Configure script for the | |||||
next release, or switching to something like Gnu configure. | |||||
COMPILING | COMPILING | ||||
9. "We just upgraded our operating system to a new version and top broke. | 9. We just upgraded our operating system to a new version and top broke. | ||||
What should we do?" | What should we do? | ||||
Recompile it. Top is very sensitive to changes in internal kernel data | Recompile it. Top is very sensitive to changes in internal kernel | ||||
structures. It is not uncommon for a new version of the operating system to | data structures. It is not uncommon for a new version of the | ||||
include changes to kernel data structures. | operating system to include changes to kernel data structures. | ||||
RUNNING | RUNNING | ||||
10. "I just finished compiling top and it works fine for root, but when | 10. I just finished compiling top and it works fine for root, but when I | ||||
I try to run it as a regular user it either complains about files | try to run it as a regular user it either complains about files it | ||||
it can't open or it doesn't display all the information it should. | can't open or it doesn't display all the information it should. Did I | ||||
Did I do something wrong?" | do something wrong? | ||||
Well, you're just not done. On many operating systems today, access to | Well, you're just not done. On many operating systems today, access | ||||
many of the kernel memory devices and other system files is restricted to | to many of the kernel memory devices and other system files is | ||||
either root or a particular group. The Configure script figures this out | restricted to either root or a particular group. The configure script | ||||
(usually) and makes sure that the "intsall" rule in the Makefile will | figures this out (usually) and makes sure that the "install" rule in | ||||
install top so that anyone can run it successfully. However, you have to | the Makefile will install top so that anyone can run it successfully. | ||||
*install* it first. Do this with the command "make install". | However, you have to *install* it first. Do this with the command | ||||
"make install". | |||||
11. "Top is (not) displaying idle processes and I don't (do) want it to." | 11. Top is (not) displaying idle processes and I don't (do) want it to. | ||||
This default has only changed about a dozen times, and I finally got tired | This default has only changed about a dozen times, and I finally got | ||||
of people whining about it. Go read the manual page for the current version | tired of people whining about it. Go read the manual page for the | ||||
and pay special attention to the description of the "TOP" environment | current version and pay special attention to the description of the | ||||
variable. | "TOP" environment variable. | ||||
12. "We have so much memory in our machine that the memory status display | 12. We have so much memory in our machine that the memory status display | ||||
(the fourth line) ends up being longer than 80 characters. This | (the fourth line) ends up being longer than 80 characters. This | ||||
completely messes up top's output. Is there a patch?" | completely messes up top's output. Is there a patch? | ||||
Most modules have been changed to use new memory formatting functions which | Most modules have been changed to use new memory formatting functions | ||||
will display large values in terms of megabytes instead of kilobytes. This | which will display large values in terms of megabytes instead of | ||||
should fix all occurences of this problem. If you encounter a system where | kilobytes. This should fix all occurences of this problem. Also note | ||||
this large memory display overflow is still occurring, please let me know | that newer versions of top can use columns beyond 79, and understand | ||||
(send mail to <wnl@groupsys.com>). Also note that newer versions of top can | window resizes. So you can always make your window wider. | ||||
use columns beyond 79, and understand window resizes. So you can always | |||||
make your window bigger. | |||||
13. "I tried to compile top with gcc and it doesn't work. I get | 13. I tried to compile top with gcc and it doesn't work. I get | ||||
compilation errors in the include files, or I get an executable that | compilation errors in the include files, or I get an executable that | ||||
dumps core, or top displays incorrect numbers in some of the displays. | dumps core, or top displays incorrect numbers in some of the | ||||
What's wrong?" | displays. What's wrong? | ||||
Gnu CC likes very much to use its own include files. Not being a gcc | Gnu CC likes very much to use its own include files. Not being a gcc | ||||
expert, I can't explain why it does this. But I can tell you that if | expert, I can't explain why it does this. But I can tell you that if | ||||
you upgrade your operating system (say from Solaris 2.4 to Solaris | you upgrade your operating system (say from Solaris 2.6 to Solaris | ||||
2.5) after installing gcc, then the include files that gcc uses will | 2.7) after installing gcc, then the include files that gcc uses will | ||||
be incorrect, especially those found in the "sys" directory. Your | be incorrect, especially those found in the "sys" directory. Your | ||||
choices are: (1) rebuild and reinstall the "standard" include files | choices are: (1) rebuild and reinstall the "standard" include files | ||||
for gcc (look for scripts in the distribution called "fixincludes" and | for gcc (look for scripts in the distribution called "fixincludes" | ||||
"fixinc.svr4"), (2) compile machine.c with "CFLAGS=-I/usr/include" | and "fixinc.svr4"), (2) compile machine.c with | ||||
then make the rest of the object files normally, or (3) use "cc". | "CFLAGS=-I/usr/include" then make the rest of the object files | ||||
Solaris 2.6 users should also consult FAQ #20. | normally, or (3) use a different compiler. | ||||
14. "The cpu state percentages are all wrong, indicating that my machine is | 14. The cpu state percentages are all wrong, indicating that my machine | ||||
using 95% system time when it is clearly idle. What's wrong?" | is using 95% system time when it is clearly idle. What's wrong? | ||||
This can happen if you compiled with gcc using the wrong include files. | This can happen if you compiled with gcc using the wrong include | ||||
See the previous question. | files. See the previous question. | ||||
SUNOS PROBLEMS | FREEBSD PROBLEMS | ||||
15. "I tried compiling top under SunOS version 4.1.x and it got compile time | 15. This version of top does not show individual threads with the "t" or | ||||
errors. Is there a patch?" | "H" commands. Instead it says "command not available." Why? | ||||
If you try compiling top in a "System V environment" under SunOS (that is, | Previous versions of top attempted to support the display of | ||||
/usr/5bin is before /usr/bin on your path) then the compilation may fail. | individual threads under FreeBSD through the use of the "t" command. | ||||
This is mostly due to the fact that top thinks its being compiled on a | However, the FreeBSD kernel does not supply sufficient or correct | ||||
System V machine when it really isn't. The only solution is to put /usr/bin | information on the individual threads within a process. So the data | ||||
and /usr/ucb before /usr/5bin on your path and try again. | that was being displayed was incorrect and misleading. Therefore, top | ||||
version 3.8 disables the use of this command to prevent the display | |||||
of incorrect information. FreeBSD 8.0 will correctly report | |||||
per-thread information and top version 3.8 supports the use of the | |||||
"t" command for version 8.0. | |||||
16. The "f" command (to display full command lines for the processes) | |||||
does not work and instead says "command not available". Why? | |||||
SVR4-derived PROBLEMS | The current version of top is able to use sysctl to retrieve almost | ||||
all of the information it needs without having to open /dev/kmem. The | |||||
one piece of information not available via sysctl is the full command | |||||
line of each argument. If you run top as a regular user and it cannot | |||||
open /dev/kmem (in other words, it is not installed set-gid to the | |||||
kmem group) then it will disable the "f" command. Make sure the top | |||||
binary is installed with a group ownership of "kmem" and with the | |||||
set-gid bit on if you want the "f" command to work properly. | |||||
16. "When I run top on my SVR4-derived operating system, it displays all | |||||
the system information at the top but does not display any process | |||||
information (or only displayes process information for my own | |||||
processes). Yet when I run it as root, everything works fine." | |||||
Your system probably uses the pseudo file system "/proc", which is by | MACOSX PROBLEMS | ||||
default only accessible by root. Top needs to be installed setuid root on | |||||
such systems if it is going to function correctly for normal users. | |||||
17. I tried to configure top on my Mac OSX system and I got an error | |||||
claiming "macosx not supported". What up? | |||||
Since I don't have full time root access to a Mac OSX system I cannot | |||||
provide effective support for the platform. MacOSX uses Mach, and it | |||||
is very difficult to extract accurate system and process information | |||||
from the system. It takes a lot of trial and error, along with root | |||||
access. I have included the most up-to-date version of the macosx | |||||
module in the distribution, but I do not claim that it works. If you | |||||
want to try to use it, you can configure with "./configure | |||||
--with-module=macosx". | |||||
SUNOS PROBLEMS | |||||
18. I tried compiling top under SunOS version 4.1.x and it got compile | |||||
time errors or run time errors. Is there a patch? | |||||
If you try compiling top in a "System V environment" under SunOS | |||||
(that is, /usr/5bin is before /usr/bin on your path) then the | |||||
compilation may fail. This is mostly due to the fact that top thinks | |||||
its being compiled on a System V machine when it really isn't. The | |||||
only solution is to put /usr/bin and /usr/ucb before /usr/5bin on | |||||
your path and try again. | |||||
SOLARIS PROBLEMS | SOLARIS PROBLEMS | ||||
17. "Under Solaris 2, when I run top as root it only shows root processes, | |||||
NOTE: the most common source of problems with top under Solaris is | |||||
the result of compiling it with the wrong front end. Make sure that | |||||
/usr/ucb is not on your path before attempting to compile top under | |||||
Solaris. | |||||
19. Is there somewhere I can get a pre-compiled package? | |||||
Yes. Although I don't provide pre-compiled binaries, you can get a | |||||
Sun-style package from www.sunfreeware.com. | |||||
20. Under Solaris 2, when I type "make", the system says "language | |||||
optional software package not installed." What's going on? | |||||
You tried to compile with /usr/ucb/cc. Make sure /usr/ucb is not on | |||||
your path. Furthermore, you do not have a Sun compiler installed on | |||||
your system. You need a compiler to make top. Either Sun's C compiler | |||||
or the Gnu C compiler will work fine. | |||||
21. Under Solaris 2, when I run top as root it only shows root processes, | |||||
or it only shows processes with a PID less than 1000. It refuses to | or it only shows processes with a PID less than 1000. It refuses to | ||||
show anything else. What do I do?" | show anything else. What do I do? | ||||
You probably compiled it with /usr/ucb/cc instead of the real C compiler. | You probably compiled it with /usr/ucb/cc instead of the real C | ||||
/usr/ucb/cc is a cc front end that compiles programs in BSD source-level | compiler. /usr/ucb/cc is a cc front end that compiles programs in BSD | ||||
compatability mode. You do not want that. Make sure that /usr/ucb is not | source-level compatability mode. You do not want that. Make sure that | ||||
on your path and try compiling top again. | /usr/ucb is not on your path and try compiling top again. | ||||
18. "Under Solaris 2, I compiled top using what I am sure is the correct | 22. Under Solaris 2, I compiled top using what I am sure is the correct | ||||
compiler but when I try to run it it complains about missing dynamic | compiler but when I try to run it it complains about missing dynamic | ||||
libraries. What is wrong?" | libraries. What is wrong? | ||||
Check to see if you have LD_LIBRARY_PATH defined in your shell. If you do, | Check to see if you have LD_LIBRARY_PATH defined in your shell. If | ||||
make sure that /usr/ucblib is not on the path anywhere. Then try compiling | you do, make sure that /usr/ucblib is not on the path anywhere. Then | ||||
top again. | try compiling top again. | ||||
19. "Under Solaris 2, when I try to run top it complains that it can't open | 23. Under Solaris 2, when I try to run top it complains that it can't | ||||
the library "libucb.so.1". So I changed the LIBS line in m_sunos5.c | open the library "libucb.so.1". So I changed the LIBS line in | ||||
to include -R/usr/ucblib to make sure that the dynamic linker will look | m_sunos5.c to include -R/usr/ucblib to make sure that the dynamic | ||||
there when top runs. I figured this was just an oversight. Was I | linker will look there when top runs. I figured this was just an | ||||
right?" | oversight. Was I right? | ||||
No, you were not right. As distributed, top requires NO alterations | No, you were not right. As distributed, top requires no alterations | ||||
for successful compilation and operations under any release of Solaris | for successful compilation and operations under any release of | ||||
2. You probably compiled top with /usr/ucb/cc instead of the real C | Solaris 2. You probably compiled top with /usr/ucb/cc instead of the | ||||
compiler. See FAQ #10 for more details. | real C compiler. See FAQ 22 for more details. | ||||
20. "When I try to compile top under Solaris 2.6 using gcc I get compile | 24. On my 64-bit system some processes show up with incorrect information | ||||
time errors. There appear to be problems with the include files, | (such as zero memory). | ||||
such as 'u_rlimit has incomplete type' and/or 'u_saved_rlimit has | |||||
incomplete type'. I've already run fixinc.svr4 as per FAQ #13. | |||||
Why didn't that fix it?" | |||||
Only top versions 3.5 and later are compatible with Solaris 2.6. Make | If you are running a 64-bit system, then you need to make sure that | ||||
sure you are using the most up-to-date version. Earlier beta release | you are running the 64-bit top binary. Top's configure script | ||||
copies of version 3.5 had additional problems when compiled with gcc. | attempts to detect 64-bit systems, and will automatically generate | ||||
Retrieve the official version 3.5 (non-beta) release from one of the | both 32-bit and 64-bit binaries on such systems. If you use or | ||||
sites listed in FAQ #1 or FAQ #2. | install the 32-bit binary on a 64-bit system top will still run but | ||||
will not produce the correct results. This will also happen if you | |||||
configure your distribution on a 32-bit system then compile with that | |||||
configuration on a 64-bit system. You must configure and compile on | |||||
the same system. For Sparc systems the 32-bit binary will be created | |||||
in the subdirectory "sparcv7" and the 64-bit binary will be created | |||||
in the subdirectory "sparcv9". For Intel systems the directories will | |||||
be "i386" (32-bit) and "amd64" (64-bit). In all cases a copy of | |||||
/usr/lib/isaexec is made in the main directory and called "top". This | |||||
program will choose the correct binary to run from one of these | |||||
subdirectories. See isaexec(3c) for more details. | |||||
25. Can I install both 32-bit and 64-bit binaries on a central file | |||||
server and have machines which mount it automatically use the correct | |||||
one? | |||||
SCO PROBLEMS | Yes. If you configure and compile on a 64-bit system, top's configure | ||||
script and makefile will automatically create both 32-bit and 64-bit | |||||
binaries. The "install" rule in the makefile will install these | |||||
binaries in subdirectories of /usr/local/bin appropriate to the | |||||
architecture (sparcv7/sparcv9 or i386/amd64) then create a copy of | |||||
/usr/lib/isaexec named "top" in /usr/local/bin to ensure that the | |||||
appropriate is run when a user types "top". If you make sure that you | |||||
configure and compile on a 64-bit system, then "make install" will do | |||||
the right thing. | |||||
21. "When I try to run Configure, it complains about a syntax error." | 26. This version of top show less available swap space than previous | ||||
versions. Why does it no longer match the output of the swap summary | |||||
produced with "swap -s"? | |||||
Some versions of SCO's csh do not understand the syntax "$<". Earlier | Starting with version 3.6 of top, the amount of swap space reported | ||||
releases of top depended on this syntax to read input from the installer's | by top has been changed to reflect only disk-based swap space. The | ||||
terminal during the installation process. Version 3.5 fixes this. | swap summary produced with "swap -s" also includes memory-based swap | ||||
space. This changed was made for several reasons. It makes the | |||||
display under Solaris more like those of other operating systems. The | |||||
display is more what users expect (except those used to previous | |||||
versions of top). Most importantly, "swap -s" gets its data via an | |||||
undocumented system interface. Now that top no longer displays that | |||||
data it can use publically documented and maintained system | |||||
interfaces to retrieve its data. | |||||
SVR4-DERIVED PROBLEMS | |||||
27. When I run top on my SVR4-derived operating system, it displays all | |||||
the system information at the top but does not display any process | |||||
information (or only displays process information for my own | |||||
processes). Yet when I run it as root, everything works fine. What's | |||||
wrong? | |||||
Your system probably uses the pseudo file system "/proc", which is by | |||||
default only accessible by root. Top needs to be installed setuid | |||||
root on such systems if it is going to function correctly for normal | |||||
users. | |||||
SVR42 PROBLEMS | SVR42 PROBLEMS | ||||
22. "The memory display doesn't work right. Why?" | 28. The memory display doesn't work right. Why? | ||||
This is a known bug with the svr42 module. The problem has been traced down | This is a known bug with the svr42 module. The problem has been | ||||
to a potential bug in the "mem" driver. The author of the svr42 module is | traced down to a potential bug in the "mem" driver. The author of the | ||||
working on a fix. | svr42 module is working on a fix. | ||||
STILL STUCK | STILL STUCK | ||||
23. I'm still stuck. To whom do I report problems with top?" | 29. I'm still stuck. To whom do I report problems with top? | ||||
The most common problems are caused by top's sensitivity to internal kernel | The most common problems are caused by top's sensitivity to internal | ||||
data structures. So make sure that you are using the right include files, | kernel data structures. So make sure that you are using the right | ||||
and make sure that you test out top on the same machine where you compiled | include files, and make sure that you test out top on the same | ||||
it. Sun's BSD Source Compatability Mode is also a common culprit. Make | machine where you compiled it. Sun's BSD Source Compatability Mode is | ||||
sure you aren't using either /usr/ucb/cc or any of the libraries in | also a common culprit. Make sure you aren't using either /usr/ucb/cc | ||||
/usr/ucblib. Finally, make sure you are using the correct module. If there | or any of the libraries in /usr/ucblib. Finally, make sure you are | ||||
does not appear to be one appropriate for your computer, then top probably | using the correct module. If there does not appear to be one | ||||
will not work on your system. | appropriate for your computer, then top probably will not work on | ||||
your system. | |||||
If after reading all of this file and checking everything you can you are | If after reading all of this file and checking everything you can you | ||||
still stuck, then send mail to "wnl@groupsys.com". I will answer your mail | are still stuck, then please use SourceForge to submit a support | ||||
when I have time. Please bear with me in that regard! If it looks like the | request or a bug. Top is supported by the SourceForge project named | ||||
problem is machine-specific, I will forward the report along to the module's | "unixtop". On SourceForge you will find defect tracking, a mailing | ||||
author. If you would like to converse directly with the module author, the | list, and on-line forums. You can also contact the author through | ||||
authors' names are listed at the beginning of the module .c file in the | SourceForge. | ||||
"machine" directory. |