Em Ter, 2016-08-09 às 14:44 +0200, Maarten Lankhorst escreveu:
Hey,
Op 08-08-16 om 23:03 schreef Lyude:
Since the watermark calculations for Skylake are still broken, we're apt to hitting underruns very easily under multi-monitor configurations. While it would be lovely if this was fixed, it's not. Another problem that's been coming from this however, is the mysterious issue of underruns causing full system hangs. An easy way to reproduce this with a skylake system:
- Get a laptop with a skylake GPU, and hook up two external
monitors to it
- Move the cursor from the built-in LCD to one of the external
displays as quickly as you can
- You'll get a few pipe underruns, and eventually the entire system
will just freeze.
After doing a lot of investigation and reading through the bspec, I found the existence of the SAGV, which is responsible for adjusting the system agent voltage and clock frequencies depending on how much power we need. According to the bspec:
"The display engine access to system memory is blocked during the adjustment time. SAGV defaults to enabled. Software must use the GT-driver pcode mailbox to disable SAGV when the display engine is not able to tolerate the blocking time."
The rest of the bspec goes on to explain that software can simply leave the SAGV enabled, and disable it when we use interlaced pipes/have more then one pipe active.
Sure enough, with this patchset the system hangs resulting from pipe underruns on Skylake have completely vanished on my T460s. Additionally, the bspec mentions turning off the SAGV with more then one pipe enabled as a workaround for display underruns. While this patch doesn't entirely fix that, it looks like it does improve the situation a little bit so it's likely this is going to be required to make watermarks on Skylake fully functional.
I think this patch goes with v9 6/6 and v8 2-5/6. If you're only updating a single patch it might be better to send it in reply to the original patch.
I'm testing the whole series on my prerelease skylake, and running into this:
[ 2794.933149] kms_cursor_legacy: starting subtest 2x-flip-vs-cursor- legacy [ 2795.813970] [drm:skl_disable_sagv [i915]] *ERROR* Request to disable SAGV timed out
Value returned from skl_do_sagv_disable is always 0 for me, even when I bump the timeout to 15.
Yesterday I started testing this series, and I also noticed some visual corruption: while browsing moderately-heavy websites on a maximized Firefox, I could see the desktop background sort of "blinking" in the screen (the background was not supposed to be visible). It looks like the problem was introduced by patch 4, but I can't be 100% sure since sometimes it's a little harder to reproduce it. Still, this is better than the current "X doesn't work" state that we have without the series.
~Maarten
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx