[Intel-gfx] [PATCH 2/2] drm/i915: Complain if we take too long under vblank evasion.
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Mon Mar 6 12:06:53 UTC 2017
Op 01-03-17 om 16:40 schreef Ville Syrjälä:
> On Tue, Feb 28, 2017 at 03:28:48PM +0100, Maarten Lankhorst wrote:
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_sprite.c | 12 ++++++++++--
>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
>> index 27e0752d1578..375ca91b308c 100644
>> --- a/drivers/gpu/drm/i915/intel_sprite.c
>> +++ b/drivers/gpu/drm/i915/intel_sprite.c
>> @@ -65,6 +65,8 @@ int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
>> 1000 * adjusted_mode->crtc_htotal);
>> }
>>
>> +#define VBLANK_EVASION_TIME_US 100
>> +
>> /**
>> * intel_pipe_update_start() - start update of a set of display registers
>> * @crtc: the crtc of which the registers are going to be updated
>> @@ -92,7 +94,8 @@ void intel_pipe_update_start(struct intel_crtc *crtc)
>> vblank_start = DIV_ROUND_UP(vblank_start, 2);
>>
>> /* FIXME needs to be calibrated sensibly */
>> - min = vblank_start - intel_usecs_to_scanlines(adjusted_mode, 100);
>> + min = vblank_start - intel_usecs_to_scanlines(adjusted_mode,
>> + VBLANK_EVASION_TIME_US);
>> max = vblank_start - 1;
>>
>> local_irq_disable();
>> @@ -191,7 +194,12 @@ void intel_pipe_update_end(struct intel_crtc *crtc, struct intel_flip_work *work
>> ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time),
>> crtc->debug.min_vbl, crtc->debug.max_vbl,
>> crtc->debug.scanline_start, scanline_end);
>> - }
>> + } else if (ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time) >
>> + VBLANK_EVASION_TIME_US)
>> + DRM_WARN("Atomic update on pipe (%c) took %lld us, max time under evasion is %u us\n",
>> + pipe_name(pipe),
>> + ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time),
>> + VBLANK_EVASION_TIME_US);
> Hmm. Yeah this should make it very likely that we'll catch any
> potential fails even when they don't happen to hit the actual critical
> section. Hopefully it won't result in massive amounts of noise. One way
> to find out ;)
>
> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Thanks, pushed. Also added a commit message to this commit.
More information about the Intel-gfx
mailing list