public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Mario Kleiner <mario.kleiner.de@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org,
	Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Subject: Re: [PATCH] drm/i915: Fix pre-CTG vblank counter
Date: Thu, 26 Sep 2013 19:32:58 +0200	[thread overview]
Message-ID: <52446FCA.2030406@gmail.com> (raw)
In-Reply-To: <20130925205536.GQ12663@phenom.ffwll.local>

On 25.09.13 22:55, Daniel Vetter wrote:
> On Wed, Sep 25, 2013 at 07:55:26PM +0300, ville.syrjala@linux.intel.com wrote:
>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> The old style frame counter increments at the start of active video.
>> However for i915_get_vblank_counter() we want a counter that increments
>> at the start of vblank.
>>
>> Fortunately the low frame counter register also contains the pixel
>> counter for the current frame. We can can compare that against the
>> vblank start pixel count to determine if we need to increment the
>> frame counter by 1 to get the correct answer.
>>
>> Also reorganize the function pointer assignments in intel_irq_init() a
>> bit to avoid confusing people.
>>
>> Cc: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> ---
>>
>> Just another small vblank related gem I forgot to polish up and send
>> out until Imre started asking me questions about the vblank counter
>> functions.
>
> Hm, I've thought the magic fixup code does take care of that for us? But I
> agree that we should do this explicitly ...
>
> This could explain some of the strange vblank timestamp off failures QA
> has reported (if there's too much delay and the fixup doesn't fire any
> more), care to attach this patch to the relevant bug reports? Searching
> for ts jitter + pre-gen5 should be good enough.
> -Daniel
>

The vblank off code has one known race in that if 
dev->driver->get_vblank_counter does not increment its counter at start 
of vblank, it can have off-by-one vblank. There's a comment in that 
function about that, e.g.,

http://lxr.free-electrons.com/source/drivers/gpu/drm/drm_irq.c#L102

The magic code there only fixes races between the vblank off code and 
the vblank irq handler. Normally that race would not really affect 
applications as long as the vblank_off_delay is as large (5 secs) as it 
is now. But in QA testing, if you exercise that code not the way a 
normal app would do it, i'd expect you to see that error about 4% of the 
time.

The only fix is to fixup the vblank counter in the kms driver, so this 
patch looks like a perfect solution to that. You can add my reviewed-by 
if you wish.

-mario

  reply	other threads:[~2013-09-26 17:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-25 16:55 [PATCH] drm/i915: Fix pre-CTG vblank counter ville.syrjala
2013-09-25 20:55 ` Daniel Vetter
2013-09-26 17:32   ` Mario Kleiner [this message]
2013-10-11 21:42     ` Daniel Vetter

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=52446FCA.2030406@gmail.com \
    --to=mario.kleiner.de@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=mario.kleiner@tuebingen.mpg.de \
    /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