[lttng-dev] [CTF] Dynamic enumerations and state system
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu Jan 19 16:13:15 EST 2012
* Alexandre Montplaisir (alexandre.montplaisir at polymtl.ca) wrote:
> On 12-01-19 03:16 PM, Aaron Spear wrote:
> > Hi Alexandre,
> >
> > Thanks for the response. I think you misinterpreted my question a little bit, so I will try to be more clear below:
> >
> > ----- Original Message -----
> >> [...]
> >>
> >>
> >> For LTTng however, we have separated the notion of "state system"
> >> from the trace file itself. We are currently working on implementing this
> >> as a library that can then be used by trace viewers like LTTV. This
> >> library will have input plugins for each trace type, in which we would define
> >> the state information we want to build from a trace. For example, in a
> >> CTF kernel trace we could assign state changes to the "wait" and "post"
> >> events, which would increment and decrement a value in the model.
> >> That way the viewer could retrieve the value of the semaphore at any point
> >> in time, even if there is no context information in the trace itself.
> > What I am really asking is how these plugins know how to construct the state from the post and wait events in our semaphore example.
>
> Right now yes, it's kind-of-hard-coded into the plugin itself for each
> specific trace type. Mathieu's earlier reply pointed out that there is a
> provision in CTF for defining those state changes straight in the
> events, but we don't have a working prototype that makes use of this (yet?).
>
> I was just giving the example of how LTTng handles it at the moment, but
> your question was more about CTF itself, my bad.
>
> > It is my hope that you could have
> > a DATA DRIVEN plugin that could know how to create the state based on CTF meta-data for the post and wait events that would tell it which attribute to extract for the state (count) and such, as opposed to having a plugin that was hard coded to handle wait and post events for Linux 3.x semaphores. Of course there has to be sane constraints on what you try to do in a data driven way, but say for example that there is in my application a state that is an enum of 5 values and I set my application up so that there is an event that is stuck in the log with the new value on any state change. Ideally I just emit some meta-data for this event that says to track the state of the value (which is one of the 5 values always) and at any point in time I can see what the current state is.
> >
> > So, if what I said above is possible, that would mean that CTF would have some way to indicate in the meta-data that an attribute of an event was a state and then optionally a reference to an enum for the states if that is the applicable.
> >
> > Is that more clear what I am asking?
>
> I'll let my Mathieu answer to whether this can be done in CTF itself.
Yes, but we will need to augment the CTF specification to support this.
Thanks,
Mathieu
>
>
> Cheers,
>
> --
> Alexandre Montplaisir
> DORSAL lab,
> École Polytechnique de Montréal
>
>
> _______________________________________________
> 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