[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-stable
Subject:    Re: top doesn't show any Process in idle-Mode
From:       Stefan Esser <se () freebsd ! org>
Date:       2006-01-30 14:28:21
Message-ID: 20060130142821.GA3199 () StefanEsser ! FreeBSD ! org
[Download RAW message or body]

On 2006-01-30 13:49 +0100, Michael Schuh <michael.schuh@gmail.com> wrote:
> Hello,
> 
> i use top mostly in idle-mode.
> # top <return> <i>
> or
> # top -I
> 
> Under releng_6 (stable p4) and the older versions,
> i think down to releng_5, doesn't show a running process.
> 
> I have tryed to dig in the source but my experiences are not
> so good that i can find the possible error.

See line 603 (in HEAD) of /usr/src/usr.bin/top/machine.c:

                if (displaymode == DISP_CPU && !show_idle &&
                    (pp->ki_pctcpu == 0 || pp->ki_stat != SRUN))
                        /* skip idle or non-running processes */
                        continue;

Since I do not like the current behaviour, I considered removing the
test for state SRUN. But I guess that the teest can not be completely
eliminated. Instead of selecting only SRUN, some states may need to
be suppressed (SZOMB, possibly also SIDL, SSTOP).

I'll test the following version on my system:

                if (displaymode == DISP_CPU && !show_idle &&
                    (pp->ki_pctcpu == 0 || pp->ki_stat == SZOMB || pp->ki_stat == SSTOP))
                        /* skip idle or non-running processes */
                        continue;

> Has anyone same experiences made with top, or has
> anyone a workaround (please not like while true........)

Patch included (not verified to apply to 5.x or 6.x, but editing the
test in place should be easy, then).

Regards, STefan

--- /usr/src/usr.bin/top/machine.c	18 May 2005 13:42:51 -0000	1.74
+++ /usr/src/usr.bin/top/machine.c	30 Jan 2006 14:26:08 -0000
@@ -601,7 +601,7 @@
 			continue;
 
 		if (displaymode == DISP_CPU && !show_idle &&
-		    (pp->ki_pctcpu == 0 || pp->ki_stat != SRUN))
+		    (pp->ki_pctcpu == 0 || pp->ki_stat == SZOMB || pp->ki_stat == SSTOP))
 			/* skip idle or non-running processes */
 			continue;
 
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic