Summary: | [IVB][REGRESSION] i915: Intermittent short system stutter / lag affecting graphics output; bisected to commit f8d03ea | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | t.ambetarak | ||||||
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: | intel-gfx-bugs, yorickpeterse | ||||||
Version: | DRI git | ||||||||
Hardware: | x86-64 (AMD64) | ||||||||
OS: | Linux (All) | ||||||||
Whiteboard: | |||||||||
i915 platform: | IVB | i915 features: | display/HDMI | ||||||
Attachments: |
|
I recently got myself a 4K display (Dell 2715Q) and ran into this problem as well. I never noticed it on my laptop's display (X1 Carbon 3rd generation using a WQHD display). Measuring frame rates using glxgears would occassionally show a drop from 59.9 frames to around 56 frames per second. Based on the notes left by the reporter I hacked together the patch named "drm_msleep_470.patch". This patch basically changes the sleep time from 10 milliseconds to just 1 millisecond. After compiling the drm module with this patch and rebooting it appears the problem has been "solved", though this probably won't work for other setups. I tested this by again running glxgears for a while and noticed no drops in frame rate. The patch is based on Linux 4.7.0, it _may_ work with different versions but I have not tested this. The patch was generated using "git diff". Yorick Created attachment 125793 [details] [review] drm patch for Linux 4.7.0 Fixed by commit 23f889bdf6ee5cfff012d8b09f6bec920c691696 Author: David Weinehall <david.weinehall@linux.intel.com> Date: Wed Aug 17 15:47:48 2016 +0300 Revert "drm/i915: Check live status before reading edid" in drm-intel-nightly. Please reopen if the problem persists with that commit. Thanks Jani! |
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.
Created attachment 125428 [details] dmesg output + miscellanious other info about the system First of all, apologies, this bug was tested against the latest mainline kernel, not the DRM kernel - this was before I realized i915 bugs should be submitted to freedesktop.org. I'm hoping it will still be useful. Description ----------- Once in a while (several times per minute) there is a short system stutter or lag (lasting for less than a second, but clearly noticable). Everything graphics-related is affected by the lag, e.g. the mouse cursor and video playback. When a video is playing in VLC, frames are dropped at the same time as the mouse cursor hangs when moving it around; at the same time the glxgears test application stutters. Audio output is not affected. Notes: - Using or not using the X Intel video driver (xf86-intel-video on Arch Linux) does not matter. - Turning compositing on or off does not matter (either the XFCE compositor or xcompmgr). - Applying the latest CPU microcode updates or not does not matter. Running strace on glxgears shows that some recvmsg syscalls take a very long time, this is when the lag happens (~0.24s): 0.000053 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}]) 0.237675 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"f\0f\34\2\0\0\0\2\0 \3\1\0\0\0\320\0r\214\0\0\0\0\216\v\0\0j\t\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 FD 3 is the X11 socket ("/tmp/.X11-unix/X0"). I have isolated the problem to kernel commit f8d03ea, which changed HDMI hotplug detection to take at most 80 ms. This seems to be too much on my hardware and is causing issues. The original value was 30 ms. Changing it to 10 ms eliminates the problem completely for me (resolution tested against commit 1a81a8f). It seems that the proper resolution would be to rewrite the hotplug detection to eliminate blocking. Environment ----------- The general hardware / software environment is: an HP laptop with Intel i5 CPU, integrated graphics. 4.12, Arch Linux fully up to date, XFCE 4.12. A Dell U2410 external monitor is attached via DisplayPort. $ uname -m x86_64 $ uname -r 4.7.0-ARAK-06537-g1a81a8f How to reproduce ---------------- Can be tested by running a video in VLC that is known to not overwhelm the CPU(s), passing the -vvv flags. On a kernel affected by the bug, several messages at a time appear in the output about frames being dropped ("picture is too late to be displayed", once or twice per minute). At the same time, the mouse cursor stutters, if mouse is being moved. Attached are dmesg output and other possibly useful information.