accounting for threads

J . A . Magallon (jamagallon@able.es)
Thu, 14 Jun 2001 00:19:29 +0200


Hi.

First, sorry if this is a glibc issue. Just chose to ask here first.

I want to know the CPU time used by a POSIX-threaded program. I have tried
to use getrusage() with RUSAGE_SELF and RUSAGE_CHILDREN. Problem:
main thread just do nothing, spawns children and waits. And I get always
0 ru_utime.

I guess it can be because of 2 things:

- RUSAGE_CHILDREN only works for fork()'ed children (although in linux threads
and processes are the same). Perhaps fork() sets some kind of flag in
clone() for accounting.

- AFAIK, linux puts an intermediate 'thread controller'. That controller
uses no CPU time, and RUSAGE_CHILDREN gets only the first children level.

Any suggestion to mesaure threads CPU time ? I can't manage only with
wall-time, because I'm not sure to have all the box just for me.
And I would like also to mesaure system time to evaluate contention.

TIA

-- 
J.A. Magallon                           #  Let the source be with you...        
mailto:jamagallon@able.es
Linux Mandrake release 8.1 (Cooker) for i586
Linux werewolf 2.4.5-ac13 #1 SMP Sun Jun 10 21:42:28 CEST 2001 i686
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/