From: Imre Deak <imre.deak@intel.com>
To: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
intel-gfx@lists.freedesktop.org, michel@daenzer.net,
dri-devel@lists.freedesktop.org
Subject: Re: [RFC 1/4] time: export getnstime_raw_and_real for DRM
Date: Mon, 08 Oct 2012 14:35:34 +0300 [thread overview]
Message-ID: <1349696134.29511.18.camel@localhost> (raw)
In-Reply-To: <506F8C65.4070909@tuebingen.mpg.de>
On Sat, 2012-10-06 at 03:41 +0200, Mario Kleiner wrote:
> [...]
>
> But then Psychtoolbox checks each timestamp it gets from somewhere
> "outside" (OML_sync_control / INTEL_swap_events / ALSA audio timestamps,
> network receive timestamps, evdev, x11, ...) if it is in gettimeofday()
> aka CLOCK_REALTIME aka wall time or in CLOCK_MONOTONIC time and just
> remaps to whatever its reference clock is.
>
> There's no way around this than to have no fixed expectations, but to
> remap stuff on the fly, because different parts of the Linux universe
> have decided on different time bases, or even switched somewhere from
> one kernel version to the next in the last years, e.g., ALSA, which at
> some time switched from wall clock to CLOCK_MONOTONIC. Sometimes
> clock_gettime() wasn't available at all in older setups, so there only
> was gettimeofday(). Or toolkits like GStreamer use different timebases
> dependent on OS and sometimes even on plugins.
>
> I would expect that other timing sensitive apps have to have ways to
> handle this in similar ways.
I think the question is, can we be sure? I don't think there is any
guarantee that random application X will not be confused by an
unconditional switch to monotonic timestamps.
> Wrt. to the drm vblank/pageflip timestamps, the userspace extensions
> which expose these (INTEL_swap_events, OML_sync_control) don't allow
> apps to select which timebase to use, they define monotonic time as what
> is returned, so i don't know how a userspace app could actually ask the
> DRM for one or the other format? So i guess just switching to
> CLOCK_MONOTONIC shouldn't be that bad.
An application could just use the kernel DRM interface directly. I admit
this is not very likely but this is what should determine the rules by
which we change the ABI.
> Kristian, i assume Wayland will also return presentation timestamps in
> the format and microsecond precision of the DRM, right?
>
> On 05.10.12 18:22, intel-gfx-request@lists.freedesktop.org wrote:
> > Message: 7 Date: Fri, 5 Oct 2012 12:14:29 -0400 From: Kristian H?gsberg
>
> ...
> > I just had a quick look at driver/input/evdev.c, since evdev devices
> > did a similar change recently to allow evdev timestamp from the
> > monotonic clock. They're using a different time API:
> >
> > time_mono = ktime_get();
> > time_real = ktime_sub(time_mono, ktime_get_monotonic_offset());
> >
> > and
> >
> > event->time = ktime_to_timeval(client->clkid == CLOCK_MONOTONIC ?
> > mono : real);
> >
> > I'm not really up-to-date on kernel time APIs, but I wonder if that
> > may be better? At least, I suspect we wouldn't need changes outside
> > drm if we use this API.
> >
> > Kristian
>
> Userspace apps only have access to what gettimeofday() and
> clock_gettime() for CLOCK_REALTIME (== gettimeofday() afaik) and
> CLOCK_MONOTONIC return, so whatever is returned should be in
> CLOCK_MONOTONIC format, otherwise there will be lots of tears and dead
> kittens. I think what evdev does makes a lot of sense, but i'm also not
> up-to-date about the various layers of timing apis.
Yes, this should be the case, regardless of which kernel interface we
decide to use.
--Imre
next prev parent reply other threads:[~2012-10-08 11:35 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.20114.1349454139.16659.intel-gfx@lists.freedesktop.org>
2012-10-06 1:41 ` [RFC 1/4] time: export getnstime_raw_and_real for DRM Mario Kleiner
2012-10-08 11:35 ` Imre Deak [this message]
2012-10-08 23:00 ` Mario Kleiner
2012-10-23 11:50 ` Imre Deak
2012-10-05 13:36 [RFC 0/4] drm: add raw monotonic timestamp support Imre Deak
2012-10-05 13:36 ` [RFC 1/4] time: export getnstime_raw_and_real for DRM Imre Deak
2012-10-05 16:14 ` Kristian Høgsberg
2012-10-09 10:25 ` Imre Deak
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=1349696134.29511.18.camel@localhost \
--to=imre.deak@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=mario.kleiner@tuebingen.mpg.de \
--cc=michel@daenzer.net \
/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;
as well as URLs for NNTP newsgroup(s).