Summary: | Jerkiness when using drm-intel-next and drm-intel-fixes | ||||||
---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Sitsofe Wheeler <sitsofe> | ||||
Component: | DRM/Intel | Assignee: | Chris Wilson <chris> | ||||
Status: | CLOSED FIXED | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | medium | ||||||
Version: | XOrg 6.7.0 | ||||||
Hardware: | Other | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Sitsofe Wheeler
2010-09-07 16:16:29 UTC
I forgot to mention both trees were from git://anongit.freedesktop.org/~ickle/drm-intel . The obvious question is whether hangcheck is doing its job properly and preventing a machine hang? diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 59457e8..294361b 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -1353,8 +1353,8 @@ void i915_hangcheck_elapsed(unsigned long data) dev_priv->hangcheck_count = 0; /* Issue a wake-up to catch stuck h/w. */ - if (dev_priv->render_ring.waiting_gem_seqno | - dev_priv->bsd_ring.waiting_gem_seqno) { + if (0&&(dev_priv->render_ring.waiting_gem_seqno | + dev_priv->bsd_ring.waiting_gem_seqno)) { DRM_ERROR("Hangcheck timer elapsed... GPU idle, missed I if (dev_priv->render_ring.waiting_gem_seqno) DRM_WAKEUP(&dev_priv->render_ring.irq_queue); With the patch in comment #3 the pauses every 10 seconds still occur in the latest drm-intel-fixes (2.6.36-rc3-00028-gc3add4b) but no message about the pause is logged in dmesg. Perhaps each pause is ever so slightly smaller than previously. So the periodic stall is due to "hotplug" polling: https://bugs.freedesktop.org/show_bug.cgi?id=29536 The fact that this now causes an error to be displayed is obviously ++bad. As mentioned in the previous comment, using echo n > /sys/module/drm_kms_helper/parameters/poll resolves the problem seen in drm-intel-fixes. However, the regular half second stutters of drm-intel-next are not resolved by doing this. Created attachment 38571 [details] [review] check the wait request is still pending before generating an error. This should prevent the "missed irq" error when under heavy load (such as the load-detect polling on i8xx/i915). [It's in -staging as well.] With the latest -staging (which has the patch mentioned in comment #6 in it) the 10 second jerkiness when drm_kms_helper's poll is y is still there but the hangcheck messages no longer appear in dmesg. Perfect testing, just the result I was hoping for. * moves to -fixes. Marking this bug as fixed. Sitsofe, please can you file a new bug for the -next stutter. |
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.