[ltt-dev] trace a futex

Mathieu Desnoyers compudj at krystal.dyndns.org
Tue Dec 2 14:50:16 EST 2008


* Gian Lorenzo Meocci (glmeocci at gmail.com) wrote:
> Hi all,
> 
> I am working (always) on a multithread tracing system. I would know if
> there is a method to trace, with LTTng, an lll_lock or a lowlevel
> function futex_wait.
> I want establish if a synchronization primitive (like
> pthread_mutex_lock or sem_wait) has acquires a lock or not.

Tracing futex wait will only tell you when there has been "heavy"
contention on the mutex which required to put the process to sleep. The
pthread code starts by looping a few times actively waiting for the lock
before it calls the OS.

Therefore, the best way to trace this would be to use the userspace
markers and trace the mutex down/up events. This would imply recompiling
the pthread library.

Also note that when this instrumentation will be enabled (I mean by this
dynamically enabled at runtime), the system may be noticeably slower
because there will be 1 system call each time the mutex primitive is
called. The current userspace tracing goes through a system call to the
OS. Eventually, we should be able to change that into a direct memory
write, which will be much faster.

Mathieu

> 
> Thanks a lot,
> 
> 
> -- 
> Ing. Gian Lorenzo Meocci
> http://www.meocci.it
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68




More information about the lttng-dev mailing list