aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2017-05-07 13:12:52 -0400
committerDave Airlie <airlied@redhat.com>2017-05-12 00:28:02 -0400
commit7b8cd3363e8a0e6b90a7067f75aaeaae61a7d612 (patch)
tree1e2c70cc0e24a35f16c987d26f30f47b762235d7
parentbb57d0411a41f525c88f0ca3cc29936e0b879a1b (diff)
drm/i915: Make vblank evade warnings optional
Add a new Kconfig option to enable/disable the extra warnings from the vblank evade code. For now we'll keep the warning about an actually missed vblank always enabled as that can have an actual user visible impact. But if we miss the deadline othrwise there's no real need to bother the user with that. We'll want these warnings enabled during development however so that we can catch regressions. Based on the reports it looks like this is still very easy to hit on SKL, so we have more work ahead of us to optimize the crtiical section further. Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reported-by: Jens Axboe <axboe@kernel.dk> Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Fixes: e1edbd44e23b ("drm/i915: Complain if we take too long under vblank evasion.") Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/i915/Kconfig.debug13
-rw-r--r--drivers/gpu/drm/i915/intel_sprite.c7
2 files changed, 18 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
index e091809a9a9e..b00edd3b8800 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -87,3 +87,16 @@ config DRM_I915_LOW_LEVEL_TRACEPOINTS
87 and also analyze the request dependency resolving timeline. 87 and also analyze the request dependency resolving timeline.
88 88
89 If in doubt, say "N". 89 If in doubt, say "N".
90
91config DRM_I915_DEBUG_VBLANK_EVADE
92 bool "Enable extra debug warnings for vblank evasion"
93 depends on DRM_I915
94 default n
95 help
96 Choose this option to turn on extra debug warnings for the
97 vblank evade mechanism. This gives a warning every time the
98 the deadline allotted for the vblank evade critical section
99 is exceeded, even if there isn't an actual risk of missing
100 the vblank.
101
102 If in doubt, say "N".
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index f7d431427115..8c87c717c7cd 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -198,12 +198,15 @@ void intel_pipe_update_end(struct intel_crtc *crtc, struct intel_flip_work *work
198 ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time), 198 ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time),
199 crtc->debug.min_vbl, crtc->debug.max_vbl, 199 crtc->debug.min_vbl, crtc->debug.max_vbl,
200 crtc->debug.scanline_start, scanline_end); 200 crtc->debug.scanline_start, scanline_end);
201 } else if (ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time) > 201 }
202 VBLANK_EVASION_TIME_US) 202#ifdef CONFIG_DRM_I915_DEBUG_VBLANK_EVADE
203 else if (ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time) >
204 VBLANK_EVASION_TIME_US)
203 DRM_WARN("Atomic update on pipe (%c) took %lld us, max time under evasion is %u us\n", 205 DRM_WARN("Atomic update on pipe (%c) took %lld us, max time under evasion is %u us\n",
204 pipe_name(pipe), 206 pipe_name(pipe),
205 ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time), 207 ktime_us_delta(end_vbl_time, crtc->debug.start_vbl_time),
206 VBLANK_EVASION_TIME_US); 208 VBLANK_EVASION_TIME_US);
209#endif
207} 210}
208 211
209static void 212static void