From: john stultz <johnstul@us.ibm.com>
To: rostedt@goodmis.org
Cc: Zhaolei <zhaolei@cn.fujitsu.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/3] ftrace: add tracepoint for xtime
Date: Wed, 16 Sep 2009 13:49:15 -0700 [thread overview]
Message-ID: <1253134155.3335.13.camel@work-vm> (raw)
In-Reply-To: <1253133136.20020.245.camel@gandalf.stny.rr.com>
On Wed, 2009-09-16 at 16:32 -0400, Steven Rostedt wrote:
> On Wed, 2009-09-16 at 12:58 -0700, john stultz wrote:
> > On Wed, Sep 16, 2009 at 12:56 PM, john stultz <johnstul@us.ibm.com> wrote:
> > > On Tue, Aug 25, 2009 at 1:14 AM, Zhaolei <zhaolei@cn.fujitsu.com> wrote:
> > >> From: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
> > >> /* Structure holding internal timekeeping values. */
> > >> struct timekeeper {
> > >> /* Current clocksource used for timekeeping. */
> > >> @@ -338,6 +341,8 @@ int do_settimeofday(struct timespec *tv)
> > >>
> > >> update_vsyscall(&xtime, timekeeper.clock);
> > >>
> > >> + trace_gtod_update_xtime(&xtime, &wall_to_monotonic);
> > >> +
> > >
> > > So the only thing to watch out on here is that xtime doesn't hold the
> > > current time, but the accumulated time. There is some unaccumulated
> > > time still kept in the clocksource structure.
> > >
> > > You probably want (assuming you only need tick granularity time) to
> > > use current_kernel_time().
> > >
> > > As an aside, is there a reason you have to have update callbacks and
> > > duplicate the time storage instead of using the existing interfaces?
> > > (ie: Is this due to locking or something else?)
> >
> > Doh. Sorry, you're actually tracing the timekeeping code. Not using
> > this to assist tracing. Got this confused.
> >
> > So yea, I think this should be ok, plus or minus determining if you
> > really want xtime or xtime_cache.
>
> Well this may be a real concern. It's not about tracing timekeeping
> (although it adds that functionality). His second patch (I didn't Cc you
> on that one) hooks to these tracepoints to update time accordingly.
>
> What is being done is a way to have a "wall time" value being added to
> the ring buffer. But this needs to be very carefully done, because the
> all tracers use this, including the function tracer in NMI code. So the
> clock source can not take locks or do anything fancy.
>
> What the idea is, is to have a semi clock that is read with some kind of
> fast increment, and then at clock ticks, this clock is synced up.
Hmm.. Yea, if that's the case, then I'm not a big fan of this approach.
It sounds like what's really needed is a lock-free variant of
current_kernel_time() or something close to the CLOCK_MONOTONIC_COARSE
functionality currently queued.
Doing it without locks might have some downsides, and I guess that's the
point of the callback method (updates happen at prescribed times and
likely under locks that the trace code understands so it avoids races
and deadlocks).
-john
next prev parent reply other threads:[~2009-09-16 20:49 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-24 10:40 [PATCH 0/3] Add walltime support for ring-buffer Zhaolei
2009-07-24 10:42 ` [PATCH] " Zhaolei
2009-07-24 10:47 ` Zhaolei
2009-07-24 10:43 ` [RFC PATCH 1/3] " Zhaolei
2009-07-24 10:43 ` [RFC PATCH 2/3] Apply walltime-supporting functions to trace system Zhaolei
2009-07-24 10:44 ` [RFC PATCH 3/3] Make ftrace display walltime in output Zhaolei
2009-07-24 13:05 ` [PATCH 0/3] Add walltime support for ring-buffer Steven Rostedt
2009-07-28 1:43 ` KOSAKI Motohiro
2009-07-28 1:53 ` Frederic Weisbecker
2009-07-28 2:19 ` Steven Rostedt
2009-08-17 9:22 ` [RFC PATCH] Add timer-source of walltime for ftrace Zhaolei
2009-08-17 16:49 ` Frederic Weisbecker
2009-08-18 2:09 ` Zhaolei
2009-08-18 18:52 ` Steven Rostedt
2009-08-18 15:57 ` KOSAKI Motohiro
2009-08-18 18:58 ` Steven Rostedt
2009-08-19 9:16 ` Zhaolei
2009-08-25 8:12 ` [PATCH 0/3] ftrace: " Zhaolei
2009-08-25 8:12 ` [PATCH 1/3] ftrace: Move setting of clock-source out of options Zhaolei
2009-08-26 2:35 ` Steven Rostedt
2009-08-26 7:23 ` [tip:tracing/core] " tip-bot for Zhaolei
2009-08-25 8:14 ` [PATCH 2/3] ftrace: add tracepoint for xtime Zhaolei
2009-08-26 2:39 ` Steven Rostedt
2009-09-01 8:03 ` Zhaolei
2009-09-16 19:56 ` john stultz
2009-09-16 19:58 ` john stultz
2009-09-16 20:32 ` Steven Rostedt
2009-09-16 20:49 ` john stultz [this message]
2009-09-17 6:34 ` Zhaolei
2009-08-25 8:15 ` [PATCH 3/3] ftrace: Add timer-source of walltime for ftrace Zhaolei
2009-08-26 2:52 ` Steven Rostedt
2009-09-16 5:25 ` [PATCH v2 0/2] " Zhaolei
2009-09-16 5:27 ` [PATCH v2 1/2] ftrace: add tracepoint for xtime Zhaolei
2009-09-16 19:33 ` Steven Rostedt
2009-09-16 5:29 ` [PATCH v2 2/2] ftrace: Add timer-source of walltime for ftrace Zhaolei
2009-09-16 5:59 ` Frederic Weisbecker
2009-09-16 6:40 ` Zhaolei
2009-09-16 19:37 ` Steven Rostedt
2009-09-17 7:10 ` Zhaolei
2009-11-04 9:39 ` [PATCH v3] ftrace: Add timer-source of walltime Zhaolei
2009-11-04 9:39 ` Zhaolei
2009-11-04 9:41 ` Zhaolei
2009-07-28 2:23 ` [PATCH 0/3] Add walltime support for ring-buffer KOSAKI Motohiro
2009-08-03 7:22 ` Ingo Molnar
2009-08-03 9:32 ` KOSAKI Motohiro
2009-08-04 14:38 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1253134155.3335.13.camel@work-vm \
--to=johnstul@us.ibm.com \
--cc=fweisbec@gmail.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=zhaolei@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox