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 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.