top under 5.3-RELEASE

Dan Nelson dnelson at
Mon Nov 29 12:54:13 PST 2004

In the last episode (Nov 29), Julian Elischer said:
> Dan Nelson wrote:
> >The values should total up better when you have processes that hang
> >around a bit more.  There was a regression in 5.3's libpthreads that
> >can make it report 0 CPU, so if you have some CPU-hungry threaded
> >programs, they may not show up in top at all even though they're
> >using 100% cpu.  libthr and libc_r report CPU correctly.
> As background, libpthread assigns user threads to arbitrary kernel
> threads "as needed". The trouble is that if a user thread comes into
> the kernel, uses a kernel thread, and then exits the kernel and
> another user thread does the same, where can we store the info about
> the first thread? We have no place to store this info in
> libpthreads.. at least not in a form useful to 'top' and 'ps'.

Can you just add the stats to the primary kse (the one with id==pid)?
That's always around as long as the process exists afaik.  Any thread
would do, since you can't guarantee that a thread will use the same kse
twice anyway.  What's annoying is seeing a CPU-bound threaded app
(mysql or java, for example) showing 0 %CPU in top/ps but the TIME
column incrementing 1 per second...

	Dan Nelson
	dnelson at

More information about the freebsd-current mailing list