[ltt-dev] Tracing thread name (was: ltt comm tracking)

Mathieu Desnoyers compudj at krystal.dyndns.org
Mon Aug 3 09:48:44 EDT 2009

* Matthieu CASTET (matthieu.castet at parrot.com) wrote:
> Hi,
> I use ltt on a 2.6.27 on an arm architecture.
> It works quite well, but I have a minor problem :
> my application sets thread name with prctl PR_SET_NAME. But ltt viewer
> doesn't seem to saw it.

Hrm, I guess we might want to instrument set_task_comm as you propose to
get the correct process name, but if this gets us the thread name, I
think it's only an implementation side-effect:

If I look at the man page:


       PR_SET_NAME (since Linux 2.6.9)
              Set the process name for the calling process, using the value in
              the location pointed to by (char *) arg2.  The name can be up to
              16  bytes  long,  and  should  be null terminated if it contains
              fewer bytes.

It seems to officially set the process name, not thread name.

The way LTTng handles thread names is by adding a userspace "thread
branding" event. It should be executed at thread startup. The downside
of the current LTTng approach is that we cannot know the name of threads
already executing before we started tracing.

Ideally, having something like prctl PR_SET/GET_THREAD_NAME would
probably make sense.


> I don't know how/where ltt extracts the comm name, but may be a
> tracepoint should be added in set_task_comm ?
> Any idea how to make ltt use name set with prctl ?
> This will make more easier to read trace for application with lot's of
> threads.
> Thanks
> Matthieu CASTET
> _______________________________________________
> 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