Tested on Solaris 8 and 9:
When process allocates more than 2G of memory,
top displays 0K under SIZE and RES.
Is there any way to fix it ?
Thanks in advance.
We see similar behavior when using a 32 bit top
to monitor 64bit processes running on a 64 bit kernel.
In our case the fix was
1. compile top as a 64 bit process ,
Sun Workshop C compiler flag: -xarch=v9
gcc compiler : -m64 -mptr64 -D_LP64
2. In the sources, format_k () must have a function
prototype, the arg must be declared size_t instead of int
and you must change the computations to make sure
size_t instead of int is used for intermediate variables.
We have sent details of our changes to William LeFebvre
Thanks a lot. -m64 did the job.
Next release (which I'm putting together right now) will have changes to Configure to automatically detect a Solaris box running a 64-bit kernel and will add -m64 (or -xarch=v9 for the Sun compiler) to the default compiler options, provided the compiler recognizes it.
Thanks guys! The 2G thing might be a red herring. I'll the fixes posted here...here is sample of the problem with setiathome solaris 9 (sparc) and prstat output as well:
PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
28419 root 1 0 1 0K 0K cpu/0 48.0H 24.71% setiathome
28414 root 1 0 1 0K 0K cpu/1 47.0H 24.68% setiathome
28409 root 1 0 1 0K 0K cpu/4 48.0H 24.55% setiathome
7419 root 1 59 0 1840K 1320K cpu/5 0:00 0.11% top
5764 root 1 59 0 4472K 2704K sleep 0:00 0.03% sshd
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
28414 root 18M 16M cpu5 7 1 46:59:48 25% setiathome/1
28409 root 18M 16M cpu4 7 1 48:02:03 25% setiathome/1
28419 root 18M 17M cpu1 7 1 47:59:14 25% setiathome/1
7420 root 4568K 4200K cpu0 39 0 0:00:00 0.1% prstat/1
391 root 2648K 2184K sleep 59 0 0:11:41 0.0% mibiisa/7
Yup -m64 and gcc33 fixed it for me!
Log in to post a comment.