From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com ([192.55.52.88]:31194 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932266AbcHIMoE (ORCPT ); Tue, 9 Aug 2016 08:44:04 -0400 Subject: Re: [PATCH v10] drm/i915/skl: Add support for the SAGV, fix underrun hangs To: Lyude , intel-gfx@lists.freedesktop.org, =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Matt Roper References: <1470690207-6606-1-git-send-email-cpaul@redhat.com> <1470690207-6606-2-git-send-email-cpaul@redhat.com> Cc: Daniel Vetter , stable@vger.kernel.org, Daniel Vetter , Jani Nikula , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org From: Maarten Lankhorst Message-ID: <28908639-4070-d39a-b96c-2fc30083b55d@linux.intel.com> Date: Tue, 9 Aug 2016 14:44:00 +0200 MIME-Version: 1.0 In-Reply-To: <1470690207-6606-2-git-send-email-cpaul@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: 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