Why top never shows ~100% CPU usage with heavy PCU load?

Alexey Shuvaev shuvaev at physik.uni-wuerzburg.de
Fri May 1 19:00:46 UTC 2009


On Fri, May 01, 2009 at 11:28:02AM -0700, Yuri wrote:
> When I run cycle process: main() {for (;;) {}} I never see that it  
> consumes ~100% CPU.
> Instead 'top -C' shows something like this, with numbers fluctuating  
> around the shown numbers:
>
>
> CPU: 96.2% user,  0.0% nice, 20.0% system,  0.0% interrupt,  0.0% idle
> Mem: 653M Active, 995M Inact, 241M Wired, 90M Cache, 112M Buf, 11M Free
> Swap: 16G Total, 204M Used, 16G Free, 1% Inuse, 16K In
>
>  PID USERNAME    THR PRI NICE   SIZE    RES STATE    TIME    CPU COMMAND
> 85422 yuri          1  99    0  2520K   980K RUN      0:21 57.47% cycle
> <skipped minor loads>
>
> [snip]
>
Strange is 20% system load. The summary line is about all cpus/cores/...
Here I have:

top:

last pid: 48056;  load averages:  0.91,  0.38,  0.15   up 12+23:14:39  20:34:58
49 processes:  2 running, 47 sleeping
CPU: 50.0% user,  0.0% nice,  0.2% system,  0.0% interrupt, 49.8% idle
Mem: 259M Active, 1630M Inact, 537M Wired, 16M Cache, 417M Buf, 1495M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
48032 lexx          1 118    0  2624K   604K CPU1    1   2:31 100.00% bbb
...

~>uname -a
FreeBSD wep4035 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Sat Apr 18 20:38:14 CEST 2009     root at wep4035:/usr/obj/usr/src/sys/GENERIC  amd64

~> cat bbb.c 
int
main(void)
{
        for (;;);
        return;
}

My $0.02,
Alexey.


More information about the freebsd-hackers mailing list