[PATCH v10] drm/i915/skl: Add support for the SAGV, fix underrun hangs
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Tue Aug 9 12:44:00 UTC 2016
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.
~Maarten
More information about the dri-devel
mailing list