From: Daniel Vetter <daniel@ffwll.ch>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 11/11] drm: Fix vblank timestamp races
Date: Tue, 22 Sep 2015 14:57:20 +0200 [thread overview]
Message-ID: <20150922125720.GL3383@phenom.ffwll.local> (raw)
In-Reply-To: <20150922123644.GO26517@intel.com>
On Tue, Sep 22, 2015 at 03:36:44PM +0300, Ville Syrjälä wrote:
> On Tue, Sep 22, 2015 at 11:10:50AM +0200, Daniel Vetter wrote:
> > On Mon, Sep 14, 2015 at 10:43:52PM +0300, ville.syrjala@linux.intel.com wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > The vblank timestamp ringbuffer only has two entries, so if the
> > > vblank->count is incremented by an even number readers may end up seeing
> > > the new vblank timestamp alongside the old vblank counter value.
> > >
> > > Fix the problem by storing the vblank counter in a ringbuffer as well,
> > > and always increment the ringbuffer "slot" by one when storing a new
> > > timestamp+counter pair.
> > >
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Imo if we bother with this we might as well just switch over to using
> > full-blown seqlocks. They internally use a two-stage update which means
> > race-free even with just one copy of the data we protect. Also more
> > standardized to boot.
>
> Any volunteers for that? I don't have time to start redoing this right
> now.
I guess we can keep it as a low-hanging thing for now, didn't seem to have
annoyed anyone yet. It should be fairly simple since all the vblank
counter access goes through the 2 functions I created a while back while
polishing the barriers a bit.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2015-09-22 12:57 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-14 19:43 [PATCH 00/11] drm: vblank fixes and timestamp based missed vblank guesttimation ville.syrjala
2015-09-14 19:43 ` [PATCH 01/11] drm: s/int crtc/unsigned int pipe/ straggles ville.syrjala
2015-09-15 7:29 ` Thierry Reding
2015-09-22 9:05 ` Daniel Vetter
2015-09-14 19:43 ` [PATCH 02/11] drm: Move timestamping constants into drm_vblank_crtc ville.syrjala
2015-09-16 13:21 ` Maarten Lankhorst
2015-09-14 19:43 ` [PATCH 03/11] drm: Stop using linedur_ns and pixeldur_ns for vblank timestamps ville.syrjala
2015-09-14 19:43 ` [PATCH 04/11] drm: Kill pixeldur_ns ville.syrjala
2015-09-14 19:43 ` [PATCH 05/11] drm/i915: Fix vblank count variable types ville.syrjala
2015-09-14 19:43 ` [PATCH 06/11] drm: Pass flags to drm_update_vblank_count() ville.syrjala
2015-09-14 19:43 ` [PATCH 07/11] drm: Limit the number of .get_vblank_counter() retries ville.syrjala
2015-09-14 19:43 ` [PATCH 08/11] drm: Clean up drm_calc_vbltimestamp_from_scanoutpos() vbl_status ville.syrjala
2015-09-14 19:43 ` [PATCH 09/11] drm: store_vblank() is never called with NULL timestamp ville.syrjala
2015-09-14 19:43 ` [PATCH 10/11] drm: Use vblank timestamps to guesstimate how many vblanks were missed ville.syrjala
2015-09-28 2:57 ` Michel Dänzer
2015-09-30 14:42 ` Thierry Reding
2015-09-14 19:43 ` [PATCH 11/11] drm: Fix vblank timestamp races ville.syrjala
2015-09-22 9:10 ` Daniel Vetter
2015-09-22 11:15 ` Maarten Lankhorst
2015-09-22 11:31 ` Daniel Vetter
2015-09-22 12:36 ` Ville Syrjälä
2015-09-22 12:57 ` Daniel Vetter [this message]
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=20150922125720.GL3383@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ville.syrjala@linux.intel.com \
/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.