LTTng on ARM - timestamps

Richard Purdie <[email protected]> Thu, 26 Jul 2007 17:21:54 +0100
Newsgroups gmane.linux.kernel.tracing
Message-ID <[email protected]>
Hi,

I've been testing LTTng 0.9.5 on an ARM 2.6.21 kernel and have noticed a
lot of lost events.

It turns out that there is instrumentation in do_timer() in
kernel/timer.c which requires the xtime_lock write seqlock to be held.
The default ARM timer implementation uses jiffies which is read using
the same xtime_lock() and hence always fails for this event (and
possibly others if there is more instrumentation in xtime_lock paths).

Basically this means LTTng is broken on ARM (and anything else using
jiffies based timer implementations for their timestamps).

The best solution I can see is to add a finer grained seqlock only held
with jiffies is changed and to use this in the timestamps for systems
without a TSC. Is this problem known about and is there any alternative?

Also, I'm not sure assuming that a timestamp of zero is an error
condition is a good idea since that could occur in normal operation?

Regards,

Richard