From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/4] drm/i915: Drop the excessive vblank waits from modeset codepaths Date: Wed, 16 Apr 2014 16:27:12 +0300 Message-ID: <20140416132712.GI18465@intel.com> References: <1394559456-7348-1-git-send-email-ville.syrjala@linux.intel.com> <1394559456-7348-4-git-send-email-ville.syrjala@linux.intel.com> <20140312083539.GG23307@nuc-i3427.alporthouse.com> <20140312091659.GF20292@intel.com> <20140312092542.GI23307@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 31BA26E36A for ; Wed, 16 Apr 2014 06:27:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20140312092542.GI23307@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Wed, Mar 12, 2014 at 09:25:42AM +0000, Chris Wilson wrote: > On Wed, Mar 12, 2014 at 11:16:59AM +0200, Ville Syrj=E4l=E4 wrote: > > On Wed, Mar 12, 2014 at 08:35:39AM +0000, Chris Wilson wrote: > > > On Tue, Mar 11, 2014 at 07:37:35PM +0200, ville.syrjala@linux.intel.c= om wrote: > > > > From: Ville Syrj=E4l=E4 > > > > = > > > > Now that we've plugged the mmio vs. ring flip race, we shouldn't ne= ed > > > > these vblank waits in the modeset codepaths anymore. So get rid of > > > > them. > > > = > > > Hmm, could we not add an assert(DSPSURFLIVE =3D=3D > > > intel_crtc->dspsurf)? > > = > > Where would you want the assert? > = > assert_plane_is_bound(new_fb) in crtc_enable() and > assert_plane_is_bound(old_fb) in crt_disable(). i.e. add them to our set > of plane/pipe checks through modeset. We can't really add live base address checks to such places w/o adding extra vblank waits. For example if we first do a set_base w/o waiting for vblank and then disable the crtc. By the time we get to crtc_disable() there's no guarantee that the mmio flip from set_base has completed, and hence the live surface address may still have the old value. For the atomic page flip stuff the live address can serve as a decent debug tool to make sure the flip has really completed or not completed when we expect. IIRC I had such a debug patch in my atomic branch. -- = Ville Syrj=E4l=E4 Intel OTC