[lttng-dev] Enable/disable TPs per executing process

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Mon Mar 5 11:32:26 EST 2012


* David Goulet (dgoulet at efficios.com) wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi Stanislav,
> 
> On 12-03-05 04:52 AM, Stanislav Vovk wrote:
> > Hi
> > 
> > In my case LTTng will collect TPs from a number of running processes. I would
> > like to enable/disable tracepoints per process. For example, two processes p1 &
> > p2 running and there exist a tracepoint called INFO which is used in both p1 and
> > p2. I would like to enable INFO for p1 only. So later, looking at my traces I
> > should only see INFO triggered by p1 and nothing from p2. Is there a way to do
> > like that?

One more info point: don't call your event "INFO". Use the

  com_company_project_component, event

or

  project_component, event

hierarchy as event name. This is mandatory, and required by
tracepoint.h. You can then select which program you want to trace by
specifying the event domain scope, e.g.:

  com_ericsson_myprogram:*

Thanks,

Mathieu

> 
> At this point in time, this feature is not implemented yet. The per-pid tracing
> is on the roadmap for future release.
> 
> > 
> > I was thinking to enable one channel per process and and then I could
> > enable/disable tracepoints per channel. Can a channel be associated with a process?
> > 
> 
> A channel can not be associated with a process. However, you can enable only
> tracepoints of a process in one channel and the other process in a second
> channel. Disabling one channel will only give you the tracepoints of a process.
> 
> You can also add the "vpid" context information to the channel or/and events and
> with that you'll be able to pin an event to a precise PID. (Note, if context is
> added to the channel, it's also enabled for events registered in that channel).
> 
> $ lttng add-context -t vpid -u -e EVENT_NAME
> (or -c CHANNEL_NAME)
> 
> > In LTTng control API I found a following function,
> > 
> > /*
> >  * Set the tracing group for the *current* flow of execution.
> >  *
> >  * On success, returns 0, on error, returns -1 (null name) or -ENOMEM.
> >  */
> > extern int lttng_set_tracing_group(const char *name);
> > 
> > I dont really understand how and where I can use these tracing groups? Is this
> > something that I can use in the above scenario?
> 
> Users in the tracing group are able to trace the kernel without root access.
> This API call allows you to set the group name *if* it is different from the
> default one ("tracing") only for the execution you are using the liblttng-ctl.
> 
> For your use case, user space tracing, no need at all :).
> 
> Cheers!
> David
> > 
> > Thanks!
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> 
> iQEcBAEBAgAGBQJPVOhAAAoJEELoaioR9I02eg0H/iDRDZvb+t5wdN5lcPlurgRU
> dapATGDsnzX9LoOhuaqkBb3lDAvDfIkUGrpo7ZSJNykKjnTotF/X9HqlB1p09tQU
> bnqsnxhv7YQTg6U1cuGGub+ERGUZoQkPReRXEvPfys3jUEgYsJHW/vamrodYGBYA
> QymnYnveO3jAIB2istEGTCsuX7nothNQX7wCTkS6VBByc8PQE4vC6UyrwmAxOQ1A
> 33fGIxdsmX27MosVHXrxHX2nv9G4Kk2TP91f6QbRpbOq9pDx37qFYliTrn4WRsGs
> lXc/nrzVt+iL8Lo8A011SFYHOhPiAiba2jHNtNQIT8iFha5NbQa6tX7OPdPxFAw=
> =fbD/
> -----END PGP SIGNATURE-----
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list