Re: Flight recorder mode

Jan Kiszka <[email protected]> Wed, 20 Feb 2008 16:21:42 +0100
Newsgroups gmane.linux.kernel.tracing
Message-ID <[email protected]>
Jan Kiszka wrote:
> Mathieu Desnoyers wrote:
>> * Jan Kiszka ([email protected]) wrote:
>>> Mathieu Desnoyers wrote:
>>>> * Jan Kiszka ([email protected]) wrote:
>>>>> Jan Kiszka wrote:
>>>>>> Mathieu Desnoyers wrote:
>>>>>>> * Jan Kiszka ([email protected]) wrote:
>>>>>>>> Mathieu Desnoyers wrote:
>>>>>>>>> * Jan Kiszka ([email protected]) wrote:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I'm trying to understand the flight recorder mode (including the hybrid
>>>>>>>>>> one) of LTTng. I originally expected that this mode means:
>>>>>>>>>>
>>>>>>>>>>  1. Fixed set of buffers, older data will be overwritten on wrap-around
>>>>>>>>>>  2. Limited size of trace files
>>>>>>>>>>
>>>>>>>>>> While 1. seems to be true, 2. is neither what I observe in the output
>>>>>>>>>> directory (flight-cpu_* get larger and larger) nor what I can find in
>>>>>>>>>> lttd's code. Intentionally?
>>>>>>>>>>
>>>>>>>>> Yep, see the other lttctl options and the quickstart guide to see how to
>>>>>>>>> spawn one lttd for the "normal" channels and a different one for the
>>>>>>>>> flight recorder channels (should be done after you stop tracing).
>>>>>>>> Sorry, /me is too blind: The quickstart guide is not mentioning flight
>>>>>>>> recorder or hybrid mode, and also lttctl --help gives me no hint what
>>>>>>>> pattern to apply for achieving limited trace file sizes.
>>>>>>>>
>>>>>>> Hrm, or do I recall doing documentaion I haven't done, let's see :)
>>>>>>>
>>>>>>> Ah, it's in a mailing list, not in the documentation yet :
>>>>>>>
>>>>>>> http://osdir.com/ml/linux.kernel.tracing/2006-09/msg00015.html
>>>>>>>
>>>>>>> It explains how to use the hybrid mode.  I'll cut'n'paste it at the end
>>>>>>> of the quickstart guide.
>>>>>>>
>>>>>>> There is not trace file size limit you can give to lttctl nor lttd. You
>>>>>>> can only specify the buffer size. The idea is that you can decide at
>>>>>>> which moment you want to take you flight recorder "snapshot" by running
>>>>>>> lttctl -f at the correct moment.
>>>>>> OK, -EBRAINSUSPENDED, you just woke it up again:
>>>>>>
>>>>>> lttctl -b -n mytrace -m flight -l <debugfs>/ltt
>>>>>> <run application>
>>>>>> <when something happened:>
>>>>>> lttctl -f -n mytrace -t <trace-out> -l <debugfs>/ltt
>>>>> Hmm, in fact this won't fly yet. It looks like I need the hybrid mode,
>>>>> because flight recorder traces generated like above are lacking some
>>>>> basic information (stuff under /control I guess) to make lttv happy.
>>>>>
>>>>> That leaves me with a (for now) acceptable tracing procedure via hybrid
>>>>> traces. But I'm still lacking some howto for pure flight recorder
>>>>> traces. Any hints still appreciated... :)
>>>>>
>>>> Hrm, LTTV should be able to cope with the missing control information.
>>>> The only tracefiles that needs to be complete are the facilities
>>>> tracefiles.
>>>>
>>>> What do you get when you start lttv on a flight recorder trace ?
>>> What I did:
>>> 1. armall
>>> 2. lttctl -n mytrace -l /sys/kernel/debug/ltt -b -m flight
>> Ah, I see.. try to change -b for -d : it will spawn an lttd daemon which
>> will read the "normal" channels (in this case, only the facilities
>> tracefiles). (also add -l /sys/kernel/debug/ltt -t /tmp/trace)
>>
>> It should then start working better.
> 
> Perfect! That's now the behavior we already had with an ancient version
> and that I wanted to recreate with latest LTTng.

Wait, that was too easy. That's _not_ what we have so far here, that is
now again the unfortunate scenario I described in my first posting:
continuous saving of the flight channel to disk while I only want the
facility infos + the entries from the flight buffers on stop. :-/

Jan