All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gregor Boirie <gregor.boirie@parrot.com>
To: Jonathan Cameron <jic23@jic23.retrosnub.co.uk>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Jonathan Cameron <jic23@kernel.org>, <linux-iio@vger.kernel.org>
Subject: Re: using monotonic clok for timstamping
Date: Tue, 9 Feb 2016 12:06:14 +0100	[thread overview]
Message-ID: <56B9C826.1090309@parrot.com> (raw)
In-Reply-To: <EDC91D66-140E-4BC1-BA2C-06689BB8FC02@jic23.retrosnub.co.uk>

To sump up, implementing timestamping clock selection support in IIO
should be based on the following principles.

Selected timestamping clock is a per-device attribute which the userspace
may access through a sysfs file.

It must be applicable to both buffered samples and events.

Userspace may choose amongst a subset of available POSIX clocks. A good
starting point would be: CLOCK_REALTIME, CLOCK_MONOTONIC,
CLOCK_MONOTONIC_RAW, CLOCK_REALTIME_COARSE,
CLOCK_MONOTONIC_COARSE, CLOCK_BOOTTIME and CLOCK_TAI.
Please delete as appropriate if needed and see clock_gettime(2).

One remaining question is : how do we ensure sample and event timestamps
consistency with respect to clock changes ? 2 suggestions:
* reject the ability to select a new clock as long as an events chardev 
is opened
   or a buffered samples channel is enabled ;
* clock may be changed at any time since it could be implemented in an 
atomic
   way (a simple atomic_t can hold an int / clockid_t if I'm no wrong).

Regards.

On 02/08/2016 06:15 PM, Jonathan Cameron wrote:
>
> On 8 February 2016 09:55:08 GMT+00:00, Lars-Peter Clausen <lars@metafoo.de> wrote:
>> On 02/06/2016 07:33 PM, Jonathan Cameron wrote:
>>> On 03/02/16 11:22, Lars-Peter Clausen wrote:
>>>> On 02/03/2016 11:55 AM, Gregor Boirie wrote:
>>>>> Dear  all,
>>>>>
>>>>> Our application relies on precise and monotonic timestamping of IMU
>> samples
>>>>> (and other sensors).
>>>>> I am wondering what reasons / use cases led to the choice of
>> realtime clock
>>>>> to implement
>>>>> iio_get_time_ns (not to mention time gaps that may be seen after
>> wake up
>>>>> from sleep states).
>>>> It's more of an oversight than a deliberate design decision. I
>> noticed this
>>>> problem as well a while ago and wanted to re-write things to use the
>>>> monotonic clock, but then realized that this would be a ABI change
>> so
>>>> dropped it and forgot about it again.
>>> There are certainly cases where the other clock would make sense (for
>> slow
>>> sampling device where being as correct as possible is the most
>> important
>>> thing).
>> I'm not sure I understand what you are trying to say, maybe we are not
>> on
>> the same page. As far as I know both clocks have the same precession,
>> but
>> their absolute value differs.
>>
>> What iio_get_time_ns() currently returns is the system clock, which
>> changes
>> whenever the time is changed (e.g. to compensate for drift, or daylight
>> saving, etc.). This is obviously not so great if that happens in the
>> middle
>> of the capture since what you care about is the relative distance
>> between
>> the samples and if your time base changes you have no idea what that is
>> anymore.
>>
>> So the monotonic clock which just keeps going at a fixed interval would
>> be
>> the better choice.
> In general I agree. My thought was that there are plausible usecases where a
>   capture is every n minutes over days or years where a timestamp that tracks with
>   'corrections' would make sense as intervals are not always the most
>   important thing.
>
> Most cases if course the monotonic clock is the best one. I chose badly a long time ago! Risk is someone is relying on it for some reason.
>
> J
>

  reply	other threads:[~2016-02-09 11:06 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 10:55 Gregor Boirie
2016-02-03 11:22 ` Lars-Peter Clausen
2016-02-06 18:33   ` Jonathan Cameron
2016-02-08  9:55     ` Lars-Peter Clausen
2016-02-08 17:15       ` Jonathan Cameron
2016-02-09 11:06         ` Gregor Boirie [this message]
2016-02-09 14:19           ` Gregor Boirie
2016-02-09 20:49             ` Jonathan Cameron
2016-02-09 20:52           ` Lars-Peter Clausen
2016-02-09 21:02             ` Jonathan Cameron
2016-02-10  9:46             ` Gregor Boirie

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=56B9C826.1090309@parrot.com \
    --to=gregor.boirie@parrot.com \
    --cc=jic23@jic23.retrosnub.co.uk \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --subject='Re: using monotonic clok for timstamping' \
    /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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.