Summary: | [SNB CI] multi-minute cpu stall when running kms_flip@blt-wf_vblank-vs-dpms|modeset | ||||||
---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Daniel Vetter <daniel> | ||||
Component: | DRM/Intel | Assignee: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> | ||||
Severity: | normal | ||||||
Priority: | medium | CC: | daniel, intel-gfx-bugs, martin.peres, tomi.p.sarvela | ||||
Version: | DRI git | ||||||
Hardware: | Other | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
i915 platform: | SNB | i915 features: | GPU hang | ||||
Attachments: |
|
Description
Daniel Vetter
2017-08-16 14:11:56 UTC
Created attachment 133552 [details]
netconsole capture right around the stall
Includes the following debug patch applied on top:
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index decf5da63950..15582af42be7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10485,6 +10485,8 @@ static int intel_crtc_atomic_check(struct drm_crtc *crtc,
return ret;
}
+ printk("after clock compute\n");
+
if (crtc_state->color_mgmt_changed) {
ret = intel_color_check(crtc, crtc_state);
if (ret)
@@ -12025,6 +12027,8 @@ static int intel_atomic_check(struct drm_device *dev,
if (ret)
return ret;
+ printk("after check_modeset\n");
+
for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, crtc_state, i) {
struct intel_crtc_state *pipe_config =
to_intel_crtc_state(crtc_state);
@@ -12089,7 +12093,11 @@ static int intel_atomic_check(struct drm_device *dev,
return ret;
intel_fbc_choose_crtc(dev_priv, state);
- return calc_watermark_data(state);
+ ret = calc_watermark_data(state);
+
+ printk("end of atomic_check\n");
+
+ return ret;
}
static int intel_atomic_prepare_commit(struct drm_device *dev,
@@ -12343,7 +12351,9 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
unsigned crtc_vblank_mask = 0;
int i;
+ printk("before wait\n");
intel_atomic_commit_fence_wait(intel_state);
+ printk("after wait\n");
drm_atomic_helper_wait_for_dependencies(state);
@@ -12573,6 +12583,8 @@ static int intel_atomic_commit(struct drm_device *dev,
return ret;
}
+ printk("after atomic prepare commit\n");
+
/*
* The intel_legacy_cursor_update() fast path takes care
* of avoiding the vblank waits for simple cursor
commit f978cc027cd02a6c43b54b69fab2b538bbe05330 (HEAD -> master, fdo/master) Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Aug 16 14:39:15 2017 +0100 lib/dummyload: Pad with a few nops so that we do not completely hog the system Fingers crossed. Hello Daniel, have this been verified, can we close this bug? Thanks. Closing, please re-open if still occurs. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.