Summary: | [SNB/IVB] [drm:intel_pipe_set_base] *ERROR* pipe is still busy with an old pageflip (kernel 3.16.0) | ||
---|---|---|---|
Product: | DRI | Reporter: | Martin Andersen <martin.x.andersen> |
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: | major | ||
Priority: | medium | CC: | deepak.kushwaha917, intel-gfx-bugs, nicolashillegeer |
Version: | XOrg git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Martin Andersen
2014-08-14 11:03:26 UTC
Let me know if any more information is needed for this bug. I was hoping the (now numerous) issues with the iGPU issues would get some attention at Intel. This is severly hampering several systems. Does this patch from Chris help? diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index d8324c69fa86..84dfdfe79896 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -3351,18 +3351,17 @@ void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc) struct drm_device *dev = crtc->dev; struct drm_i915_private *dev_priv = dev->dev_private; - if (crtc->primary->fb == NULL) - return; - WARN_ON(waitqueue_active(&dev_priv->pending_flip_queue)); WARN_ON(wait_event_timeout(dev_priv->pending_flip_queue, !intel_crtc_has_pending_flip(crtc), 60*HZ) == 0); - mutex_lock(&dev->struct_mutex); - intel_finish_fb(crtc->primary->fb); - mutex_unlock(&dev->struct_mutex); + if (crtc->primary->fb) { + mutex_lock(&dev->struct_mutex); + intel_finish_fb(crtc->primary->fb); + mutex_unlock(&dev->struct_mutex); + } } /* Program iCLKIP clock to the desired frequency */ http://mid.gmane.org/1408536814-12974-1-git-send-email-chris@chris-wilson.co.uk No, it is not intended to help, but to just move the error to the expected location. (You want the rest of the stuck pageflip infrastructure to do the full fixup. And note that this is just a bandaid to keep the system alive.) Sorry, I'm somewhere between too much and too little coffee. (In reply to comment #5) > Sorry, I'm somewhere between too much and too little coffee. Which would, if I were to think, amount to just the right levels of coffee. I'm not there. Thanks for the updates. Let me know in case there are any other upcoming patches from the 3.17 rc's or the drm-intel-nightlies which might help (I looked through the Changelogs, but came up inconclusive, but obviously now since Chris chimed in as well that is probably not the case :P) (I'm referring to the prepackaged debs from: http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-nightly/) Unfortunately I have limited time to compile a custom kernel as this is a production system. btw., the coffee statement(s) might make for a good sig. ;) Also experience a flip freeze on SNB - not caught by the stalled flip detector either, at least not until the modeset. 60s is a long time to wait, but at least the hammer I carry in my kernel did get the system back. That the stalled flip detector did not fire suggests that vblanks were disabled? At least that is my theory right now. Alternate theory is missed irq. Found the cause of mine I think, I broke the GPU with a local patch - so unlikely to be the same bug, but still may be the same causal relation. In drm-intel-nightly, we have commit 9c787942907face82da505c2c5493998b56cfc5a Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Sep 5 07:13:25 2014 +0100 drm/i915: Decouple the stuck pageflip on modeset If we successfully confuse the hardware, and cause it to drop a queued pageflip, we wait for 60s and issue a warning before continuing on with the modeset. However, this leaves the pending pageflip still stuck indefinitely. Pretend to userspace that it does complete, and let us start afresh following the modeset. which should keep the system alive after the failure. Could you please try a kernel based on http://cgit.freedesktop.org/drm-intel/ #drm-intel-nightly and check that the system does recover, and then see if we have some more information about the root cause? I've installed 3.17.0-994.201409042205 from drm-intel-nightly (http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-nightly/) to test. Will report back when I have some information on how it (mis-)behaves. So far so good. Left the system running during the weekend with a GL screensaver (and PM disabled), and no pageflip errors (or any other i915-related errors) were logged. The system still has the 'pipe_off wait timed out' (in intel_display.c:997) softpanic relating to the DisplayPort when booting, though. I believe this is logged as a separate bug, but just wanted to mention it... *** Bug 85116 has been marked as a duplicate of this bug. *** Thank you Martin. Let's consider it fixed. Feel free to reopen if you start seeing it back again. |
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.