Skip to contentSkip to conversation

accounting for threads

DISCUSSION J . A . Magallon 1 participant 1 message Jun 13, 2001

lore
Share & tools
lore
#0 lore raw

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

Signature · 4 lines
J.A. Magallon                           #  Let the source be with you...        
mailto:[email protected]
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