Re: [RFC] The New and Improved Logdev (now with kprobes!)

From: Mathieu Desnoyers
Date: Thu Oct 05 2006 - 16:18:42 EST


* Daniel Walker (dwalker@xxxxxxxxxx) wrote:
> On Thu, 2006-10-05 at 14:38 -0400, Steven Rostedt wrote:
> > On Thu, 5 Oct 2006, Daniel Walker wrote:
> >
> > > On Thu, 2006-10-05 at 14:09 -0400, Steven Rostedt wrote:
> > >
> > > >
> > > > My problem with using a timestamp, is that I ran logdev on too many archs.
> > > > So I need to have a timestamp that I can get to that is always reliable.
> > > > How does LTTng get the time for different archs? Does it have separate
> > > > code for each arch?
> > > >
> > >
> > > I just got done updating a patchset that exposes the clocksources from
> > > generic time to take low level time stamps.. But even without that you
> > > can just call gettimeofday() directly to get a timestamp .
> > >
> >
> > unless you're tracing something that his holding the xtime_lock ;-)
>
> That's part of the reason for the changes that I made to the clocksource
> API . It makes it so instrumentation, with other things, can generically
> read a low level cycle clock. Like on PPC you would read the
> decrementer, and on x86 you would read the TSC . However, the
> application has no idea what it's reading.
>
> I submitted one version to LKML already, but I'm planning to submit
> another version shortly.
>

Just as a detail : LTTng traces NMI, which can happen on top of a
xtime_lock. So yes, I have to consider the impact of this kind of lock when I
choose my time source, which is currently a per architecture TSC read,
or a read of the jiffies counter when the architecture does not have a
synchronised TSC over the CPUs. This is abstracted in include/asm-*/ltt.h.

I know it doesn't support dynamic ticks, I'm working on using the HRtimers
instead, but I must make sure that the seqlock read will fail if it nests over
a write seqlock.

MAthieu

OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/