Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [linuxtools-dev] NexusLite source code.

Hi,
Thank you for your interest, I'll add some comments inline below.

It's true that the Analysis Framework documentation may be a bit too basic (and a little bit outdated at that). It should be updated and present a more concrete example, say, using an event request instead of doing nothing. That's often the use case people will want to implement. I'll update the doc with your comments in mind.

On 07/10/2014 02:56 PM, Seenu wrote:
Hi Mathew,

Let me explain my requirement briefly and what I'm looking for.

1. I want to define a new trace format with fixed number of fields each of them have numeric value.
Eg: To keep things simple, assume I've a trace data with only three fields. Time stamp, L1 Cache Hits, L1 Total Cache Accesses.
I don't know how your data is represented, but if it is a text file, you may want to take a look at the Custom Text Parser, documented here http://wiki.eclipse.org/Linux_Tools_Project/LTTng2/User_Guide#Custom_Parsers.
2. I want to define a new analysis module calculating the % of cache hits over time and show it in a view similar to CPU utilization.
3. I want to define various different analysis modules involving mathematical computation of such data and show them as tabular, graph views.
You could use an analysis that does an TmfEventRequest.  The handleData method of the request will receive events chronologically and you can do whatever you wish with it.
4. I like the concept of defining parameters for analysis module so I can say I want to see % of cache hits of L1 or L2. (Assuming I've data for L1 and L2 cache in my trace). Something similar to how % CPU utilization graphs overlaps with a single process CPU utilization.
Analysis parameters typically will change the results of an analysis, so that analysis executed with param=x will give result A and analysis executed with param=y will give result B. That parameter is not used for the output, but really for the analysis itself. You can independently parameterize the output (like the CPU utilization view), by showing only a subset of the analysis results.

But parameters can be used in conjunction with views. For example, you select an entry in the control Flow View and it changes the parameter of an analysis that is run for this entry and another view shows the results.

I'm trying to explore whether TMF can fit into this requirement. In my case, I don't have multiple events as such. It is just table of data. 
So to put things in the context of TMF, I can think of it as trace data with only single event.

I haven't understood the concept of State Systems in TMF and feel is not relevant to my requirements.
The state system is basically a data structure used to track the states of elements of a system in a large sense. 'States' and 'elements of the system' can be almost anything. It can be saved on disk so it scales well for large traces and large number of data. it may or may not be useful to you. Here's some read you may find interesting http://wiki.eclipse.org/Linux_Tools_Project/LTTng2/User_Guide#Data_driven_analysis

If you have not understood my requirements then don't worry too much about the above details. In terms of the what is missing in the doc, I have some suggestions.

The analysis framework was not part of kepler. If you look at the luna documentation, it should be there now.

2. The first chapter on "Implementing a New Trace Type" was very good because it has explained the concept with a basic example along with source code. It would be good if the concept of "Analysis Framework" was also explained in continuation by taking the same trace which was defined in the first chapter.
Indeed each chapter is independent, written by different people, but it's a good idea to harmonize it and follow with a same simple example. We'll see what can be done.

3. I can think of a simple analysis for Nexus Lite trace format. Nexus lite format has 64 different events and we want to plot the graph showing how the percentage of each type is varying over time.

May be I'm asking too much but I just want to share my experience of exploring the framework as newbie and how it could have better for me. Anyway, I'm trying to explore/experiment with Statistics Analysis module and making some progress. 

Just another question:
Does TMF support live visualization of trace data. Even if it is not already in place, is it possible for me to add that support?
What do you mean by "live visualization"? For LTTng, we are working on supporting live tracing, meaning reading trace data as the trace is being recorded. For log files, would you mean read trace data from that file while data is still being appended to the file? I don't think that support is here yet. Once we reach the end of file, the file is closed and the request is finished. So any data appended after that won't be read. Unless I am mistaken.

Hope this helps,
Geneviève

Back to the top