Re: [PATCH v2 4/4] clock: add perf_clock posix clock

John Stultz
2015-02-18T18:15:28Z

On Wed, Feb 18, 2015 at 10:10 AM, Stephane Eranian <eranian@google.com> wrote:
> On Wed, Feb 18, 2015 at 1:00 PM, John Stultz <john.stultz@linaro.org> wrote:
>> On Wed, Feb 18, 2015 at 9:21 AM, Stephane Eranian <eranian@google.com> wrote:
>>> This patch is a re-packaging of David's Ahern
>>> posix perf clock available here:
>>>
>>> https://github.com/dsahern/linux/blob/perf-full-monty/README.ahern
>>>
>>> The patch itself is based on Pawel Moll's original post:
>>>
>>> https://lkml.org/lkml/2013/3/14/523
>>>
>>> The new clock is call PERF_CLOCK. To use it
>>>
>>> #include <time.h>
>>> #include <linux/time.h>
>>>
>>> struct timespec ts;
>>>
>>> clock_gettime(PERF_CLOCK, &ts);
>>
>> I'd still strongly recommend against exposing the perf clock to
>> userspace this way. The time domain isn't clearly different from
>> something like CLOCK_MONOTONIC_RAW and doesn't really have well
>> defined behavior. We're just exporting "whatever the kernel does
>> internally" to userspace, and in the past similar internal use clocks
>> like the sched_clock have changed their behavior, so I'm not confident
>> the perf clock is really baked enough (including cross architectures)
>> to make it part of the ABI.
>>
>> Pawel and others have continued to work on other approaches that allow
>> for perf events to be interpolated to, or use CLOCK_MONOTONIC itself,
>> which I don't object to, so you might want to follow up on those?
>>
> Personally, I don't have a preference. I want something that is EASY to
> correlate to the perf_events timestamp and that is PORTABLE across
> architectures. Where is the patch that uses CLOCK_MONOTONIC?
> I assume it changes the clock used by perf_events and I further assume
> this clock can be read from NMI context (without requiring locking).

I believe it can be found here:
https://lkml.org/lkml/2015/1/21/711

thanks
-john