Summary: | [945GM bisected] some OGLC cases performance regression due to memory self refresh | ||||||
---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Shuang He <shuang.he> | ||||
Component: | DRM/Intel | Assignee: | Li Peng <peng.li> | ||||
Status: | CLOSED FIXED | QA Contact: | |||||
Severity: | major | ||||||
Priority: | high | CC: | eric, peng.li | ||||
Version: | XOrg git | ||||||
Hardware: | Other | ||||||
OS: | Linux (All) | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Shuang He
2010-02-03 19:34:49 UTC
Memory self refresh on 945 will only take effect with GPU or crtc is idle. Is there some idle happening in the test case runtime ? (In reply to comment #1) > Memory self refresh on 945 will only take effect with GPU or crtc is idle. > > Is there some idle happening in the test case runtime ? > How to check if there's idle happening in the test case runtime? drm.debug=2 if GPU or crtc becoming idle, you would see "enable memory self refresh on 945" (In reply to comment #3) > drm.debug=2 > > if GPU or crtc becoming idle, you would see > > "enable memory self refresh on 945" > There's lots of message like this when running the test case: [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071233 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071234 [drm:i915_add_request], 1071235 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071236 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071237 [drm:i915_add_request], 1071238 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071239 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071240 [drm:i915_add_request], 1071241 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:i915_add_request], 1071242 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 [drm:intel_mark_busy], disable memory self refresh on 945 ok, then the test case doesn't keep making GPU or crtc busy, and memory self refresh is enabled when they are idle. So the transition from busy to idle, or idle to busy makes memory self refresh on and off. causing it takes longer time to run the test case. (In reply to comment #5) > ok, then the test case doesn't keep making GPU or crtc busy, and memory self > refresh is enabled when they are idle. So the transition from busy to idle, or > idle to busy makes memory self refresh on and off. causing it takes longer time > to run the test case. > Is it going into idle state too soon? I will send you a patch tomorrow, see if it can help. Created attachment 33054 [details] [review] test .patch Please try this patch, it will only disable memory self refresh when GPU/crtc's busy flag changing from "false" to "true" (In reply to comment #8) > Created an attachment (id=33054) [details] > test .patch > > Please try this patch, it will only disable memory self refresh when GPU/crtc's > busy flag changing from "false" to "true" > This patch works for me Thanks, Shuang. I will submit to upstream. Thanks Peng. Patch is applied in drm-intel-next tree. Mark it as fixed. (In reply to comment #12) > Patch is applied in drm-intel-next tree. Mark it as fixed. > I'd have to reopen the bug, since, the patch commit into drm-intel-next can't be built due to typo in following line: drivers/gpu/drm/i915/intel_display.c:2778: error: 'IS_I915GM' undeclared (first use in this function) Eric rebased this patch based on commit 33c5fd121eabbccc9103daf6cda36941eb3c349f but there is a typo introduced, a fix is post in the mailing list http://lists.freedesktop.org/archives/intel-gfx/2010-February/005904.html Eric, would you please fix it ? Thank you. build error is fixed. close this bug verified on 945GM against: Kernel (drm-intel-next)6070a4a928f8c92b9fae7d6717ebbb05f425d6b2 Libdrm (master)9a37455b35d746d694760cfe8850a8bf856d73c9 Mesa (master)54f9c509a1eddfa7b2600ef4e4c18c2e212f6d51 Xserver (master)de86a3a3448f0a55c1cd99aee9ea80070a589877 Xf86_video_intel (master)a0ee9c3d9c72962c8d513ec8c43dd4a21e316947 Closing old verified. |
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.