[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20131211114004.GA789@gmail.com>
Date: Wed, 11 Dec 2013 12:40:04 +0100
From: Ingo Molnar <mingo@...nel.org>
To: David Ahern <dsahern@...il.com>
Cc: linux-kernel@...r.kernel.org, Pawel Moll <pawel.moll@....com>,
Frederic Weisbecker <fweisbec@...il.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
Mike Galbraith <efault@....de>, Jiri Olsa <jolsa@...hat.com>,
Namhyung Kim <namhyung@...nel.org>,
Stephane Eranian <eranian@...gle.com>,
John Stultz <john.stultz@...aro.org>,
Sonny Rao <sonnyrao@...omium.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH] perf: POSIX CLOCK_PERF to report current time value
* Ingo Molnar <mingo@...nel.org> wrote:
>
> * David Ahern <dsahern@...il.com> wrote:
>
> > From: Pawel Moll <pawel.moll@....com>
> >
> > To co-relate user space events with the perf events stream
> > a current (as in: "what time(stamp) is it now?") time value
> > must be made available.
>
> So I'm wondering about your earlier approach posted here:
>
> https://lkml.org/lkml/2011/6/7/636
>
> I'd modify that patch the following way: instead of tracking each
> separate reason, perhaps only track timekeeping_update().
>
> Such a tracepoint, combined with PERF_SAMPLE_TIME, would very
> accurately track external changes to GTOD (xtime).
>
> That leaves us with tracking/correlating the regular flow of time,
> which could be achieved by another tracepoint in:
>
> kernel/time/timekeeping.c::do_timer()
>
> So only two new tracepoints are needed AFAICS - and the tracepoints
> would obviously be useful for other (debugging) purposes as well.
> Would that solve the wall-clock correlation problem adequately?
I forgot to mention what data the new tracepoints would trace:
- timekeeping_update() would trace the 'before' and 'after'
(==current) GTOD values
- do_timer() would trace 'ticks' and the current GTOD value.
'GTOD value' is what gettimeofday() would return, which in the
do_timer() case ought to be something like this:
tk->xtime_sec
(tk->xtime_nsec >> tk->shift) + get_arch_timeoffset()
(Note that this is simple and fast as there's no need to read the
clock once again, it was just read.)
Thanks,
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists