From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 917ADC433E0 for ; Tue, 9 Feb 2021 09:36:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3CE4064E75 for ; Tue, 9 Feb 2021 09:36:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230028AbhBIJg0 convert rfc822-to-8bit (ORCPT ); Tue, 9 Feb 2021 04:36:26 -0500 Received: from mail.fireflyinternet.com ([77.68.26.236]:64784 "EHLO fireflyinternet.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S229710AbhBIJeY (ORCPT ); Tue, 9 Feb 2021 04:34:24 -0500 X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.69.177; Received: from localhost (unverified [78.156.69.177]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 23819370-1500050 for multiple; Tue, 09 Feb 2021 09:33:10 +0000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT In-Reply-To: <20210209021918.16234-2-ville.syrjala@linux.intel.com> References: <20210209021918.16234-1-ville.syrjala@linux.intel.com> <20210209021918.16234-2-ville.syrjala@linux.intel.com> Subject: Re: [PATCH 2/3] drm/i915: Fix overlay frontbuffer tracking From: Chris Wilson Cc: stable@vger.kernel.org, Joonas Lahtinen To: Ville Syrjala , intel-gfx@lists.freedesktop.org Date: Tue, 09 Feb 2021 09:33:11 +0000 Message-ID: <161286319138.7943.3229337601047523963@build.alporthouse.com> User-Agent: alot/0.9 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Quoting Ville Syrjala (2021-02-09 02:19:17) > From: Ville Syrjälä > > We don't have a persistent fb holding a reference to the frontbuffer > object, so every time we do the get+put we throw the frontbuffer object > immediately away. And so the next time around we get a pristine > frontbuffer object with bits==0 even for the old vma. This confuses > the frontbuffer tracking code which understandably expects the old > frontbuffer to have the overlay's bit set. > > Fix this by hanging on to the frontbuffer reference until the next > flip. And just to make this a bit more clear let's track the frontbuffer > explicitly instead of just grabbing it via the old vma. > > Cc: stable@vger.kernel.org > Cc: Chris Wilson > Cc: Joonas Lahtinen > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1136 > Fixes: da42104f589d ("drm/i915: Hold reference to intel_frontbuffer as we track activity") Maybe more apropos, same kernel though Fixes: 8e7cb1799b4f ("drm/i915: Extract intel_frontbuffer active tracking") Ok, so this definitely used to be swapping between the obj->frontbuffer_bits and so used to have a persistent reference. Keeping the frontbuffer tracking with the overlay makes even more sense. > Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson > --- > drivers/gpu/drm/i915/display/intel_overlay.c | 17 ++++++++--------- > 1 file changed, 8 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c > index 9c0113f15b58..ef8f44f5e751 100644 > --- a/drivers/gpu/drm/i915/display/intel_overlay.c > +++ b/drivers/gpu/drm/i915/display/intel_overlay.c > @@ -183,6 +183,7 @@ struct intel_overlay { > struct intel_crtc *crtc; > struct i915_vma *vma; > struct i915_vma *old_vma; > + struct intel_frontbuffer *frontbuffer; > bool active; > bool pfit_active; > u32 pfit_vscale_ratio; /* shifted-point number, (1<<12) == 1.0 */ > @@ -283,21 +284,19 @@ static void intel_overlay_flip_prepare(struct intel_overlay *overlay, > struct i915_vma *vma) > { > enum pipe pipe = overlay->crtc->pipe; > - struct intel_frontbuffer *from = NULL, *to = NULL; > + struct intel_frontbuffer *frontbuffer = NULL; > > drm_WARN_ON(&overlay->i915->drm, overlay->old_vma); > > - if (overlay->vma) > - from = intel_frontbuffer_get(overlay->vma->obj); > if (vma) > - to = intel_frontbuffer_get(vma->obj); > + frontbuffer = intel_frontbuffer_get(vma->obj); > > - intel_frontbuffer_track(from, to, INTEL_FRONTBUFFER_OVERLAY(pipe)); > + intel_frontbuffer_track(overlay->frontbuffer, frontbuffer, > + INTEL_FRONTBUFFER_OVERLAY(pipe)); > > - if (to) > - intel_frontbuffer_put(to); > - if (from) > - intel_frontbuffer_put(from); > + if (overlay->frontbuffer) > + intel_frontbuffer_put(overlay->frontbuffer); > + overlay->frontbuffer = frontbuffer; And this will drop the ref on overlay->frontbuffer as we flip to NULL on shutdown. Now if only someone still had the code to expose sprites instead of overlays. -Chris From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B316AC433DB for ; Tue, 9 Feb 2021 09:33:18 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 77D3D64E26 for ; Tue, 9 Feb 2021 09:33:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 77D3D64E26 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DA1C989C59; Tue, 9 Feb 2021 09:33:16 +0000 (UTC) Received: from fireflyinternet.com (unknown [77.68.26.236]) by gabe.freedesktop.org (Postfix) with ESMTPS id A656E89C59 for ; Tue, 9 Feb 2021 09:33:15 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.69.177; Received: from localhost (unverified [78.156.69.177]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 23819370-1500050 for multiple; Tue, 09 Feb 2021 09:33:10 +0000 MIME-Version: 1.0 In-Reply-To: <20210209021918.16234-2-ville.syrjala@linux.intel.com> References: <20210209021918.16234-1-ville.syrjala@linux.intel.com> <20210209021918.16234-2-ville.syrjala@linux.intel.com> From: Chris Wilson To: Ville Syrjala , intel-gfx@lists.freedesktop.org Date: Tue, 09 Feb 2021 09:33:11 +0000 Message-ID: <161286319138.7943.3229337601047523963@build.alporthouse.com> User-Agent: alot/0.9 Subject: Re: [Intel-gfx] [PATCH 2/3] drm/i915: Fix overlay frontbuffer tracking X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stable@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" UXVvdGluZyBWaWxsZSBTeXJqYWxhICgyMDIxLTAyLTA5IDAyOjE5OjE3KQo+IEZyb206IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gV2UgZG9uJ3Qg aGF2ZSBhIHBlcnNpc3RlbnQgZmIgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB0aGUgZnJvbnRidWZm ZXIKPiBvYmplY3QsIHNvIGV2ZXJ5IHRpbWUgd2UgZG8gdGhlIGdldCtwdXQgd2UgdGhyb3cgdGhl IGZyb250YnVmZmVyIG9iamVjdAo+IGltbWVkaWF0ZWx5IGF3YXkuIEFuZCBzbyB0aGUgbmV4dCB0 aW1lIGFyb3VuZCB3ZSBnZXQgYSBwcmlzdGluZQo+IGZyb250YnVmZmVyIG9iamVjdCB3aXRoIGJp dHM9PTAgZXZlbiBmb3IgdGhlIG9sZCB2bWEuIFRoaXMgY29uZnVzZXMKPiB0aGUgZnJvbnRidWZm ZXIgdHJhY2tpbmcgY29kZSB3aGljaCB1bmRlcnN0YW5kYWJseSBleHBlY3RzIHRoZSBvbGQKPiBm cm9udGJ1ZmZlciB0byBoYXZlIHRoZSBvdmVybGF5J3MgYml0IHNldC4KPiAKPiBGaXggdGhpcyBi eSBoYW5naW5nIG9uIHRvIHRoZSBmcm9udGJ1ZmZlciByZWZlcmVuY2UgdW50aWwgdGhlIG5leHQK PiBmbGlwLiBBbmQganVzdCB0byBtYWtlIHRoaXMgYSBiaXQgbW9yZSBjbGVhciBsZXQncyB0cmFj ayB0aGUgZnJvbnRidWZmZXIKPiBleHBsaWNpdGx5IGluc3RlYWQgb2YganVzdCBncmFiYmluZyBp dCB2aWEgdGhlIG9sZCB2bWEuCj4gCj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiBDYzog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiBDbG9zZXM6IGh0dHBzOi8v Z2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vaW50ZWwvLS9pc3N1ZXMvMTEzNgo+IEZpeGVzOiBk YTQyMTA0ZjU4OWQgKCJkcm0vaTkxNTogSG9sZCByZWZlcmVuY2UgdG8gaW50ZWxfZnJvbnRidWZm ZXIgYXMgd2UgdHJhY2sgYWN0aXZpdHkiKQoKTWF5YmUgbW9yZSBhcHJvcG9zLCBzYW1lIGtlcm5l bCB0aG91Z2gKRml4ZXM6IDhlN2NiMTc5OWI0ZiAoImRybS9pOTE1OiBFeHRyYWN0IGludGVsX2Zy b250YnVmZmVyIGFjdGl2ZSB0cmFja2luZyIpCgpPaywgc28gdGhpcyBkZWZpbml0ZWx5IHVzZWQg dG8gYmUgc3dhcHBpbmcgYmV0d2VlbiB0aGUKb2JqLT5mcm9udGJ1ZmZlcl9iaXRzIGFuZCBzbyB1 c2VkIHRvIGhhdmUgYSBwZXJzaXN0ZW50IHJlZmVyZW5jZS4KS2VlcGluZyB0aGUgZnJvbnRidWZm ZXIgdHJhY2tpbmcgd2l0aCB0aGUgb3ZlcmxheSBtYWtlcyBldmVuIG1vcmUgc2Vuc2UuCgo+IFNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jIHwg MTcgKysrKysrKystLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X292ZXJsYXkuYwo+IGluZGV4IDljMDExM2YxNWI1OC4uZWY4ZjQ0ZjVlNzUxIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vdmVybGF5LmMKPiBAQCAtMTgzLDYg KzE4Myw3IEBAIHN0cnVjdCBpbnRlbF9vdmVybGF5IHsKPiAgICAgICAgIHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjOwo+ICAgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gICAgICAgICBzdHJ1 Y3QgaTkxNV92bWEgKm9sZF92bWE7Cj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIg KmZyb250YnVmZmVyOwo+ICAgICAgICAgYm9vbCBhY3RpdmU7Cj4gICAgICAgICBib29sIHBmaXRf YWN0aXZlOwo+ICAgICAgICAgdTMyIHBmaXRfdnNjYWxlX3JhdGlvOyAvKiBzaGlmdGVkLXBvaW50 IG51bWJlciwgKDE8PDEyKSA9PSAxLjAgKi8KPiBAQCAtMjgzLDIxICsyODQsMTkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfb3ZlcmxheV9mbGlwX3ByZXBhcmUoc3RydWN0IGludGVsX292ZXJsYXkgKm92 ZXJsYXksCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5 MTVfdm1hICp2bWEpCj4gIHsKPiAgICAgICAgIGVudW0gcGlwZSBwaXBlID0gb3ZlcmxheS0+Y3J0 Yy0+cGlwZTsKPiAtICAgICAgIHN0cnVjdCBpbnRlbF9mcm9udGJ1ZmZlciAqZnJvbSA9IE5VTEws ICp0byA9IE5VTEw7Cj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZnJvbnRidWZmZXIgKmZyb250YnVm ZmVyID0gTlVMTDsKPiAgCj4gICAgICAgICBkcm1fV0FSTl9PTigmb3ZlcmxheS0+aTkxNS0+ZHJt LCBvdmVybGF5LT5vbGRfdm1hKTsKPiAgCj4gLSAgICAgICBpZiAob3ZlcmxheS0+dm1hKQo+IC0g ICAgICAgICAgICAgICBmcm9tID0gaW50ZWxfZnJvbnRidWZmZXJfZ2V0KG92ZXJsYXktPnZtYS0+ b2JqKTsKPiAgICAgICAgIGlmICh2bWEpCj4gLSAgICAgICAgICAgICAgIHRvID0gaW50ZWxfZnJv bnRidWZmZXJfZ2V0KHZtYS0+b2JqKTsKPiArICAgICAgICAgICAgICAgZnJvbnRidWZmZXIgPSBp bnRlbF9mcm9udGJ1ZmZlcl9nZXQodm1hLT5vYmopOwo+ICAKPiAtICAgICAgIGludGVsX2Zyb250 YnVmZmVyX3RyYWNrKGZyb20sIHRvLCBJTlRFTF9GUk9OVEJVRkZFUl9PVkVSTEFZKHBpcGUpKTsK PiArICAgICAgIGludGVsX2Zyb250YnVmZmVyX3RyYWNrKG92ZXJsYXktPmZyb250YnVmZmVyLCBm cm9udGJ1ZmZlciwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVMX0ZST05U QlVGRkVSX09WRVJMQVkocGlwZSkpOwo+ICAKPiAtICAgICAgIGlmICh0bykKPiAtICAgICAgICAg ICAgICAgaW50ZWxfZnJvbnRidWZmZXJfcHV0KHRvKTsKPiAtICAgICAgIGlmIChmcm9tKQo+IC0g ICAgICAgICAgICAgICBpbnRlbF9mcm9udGJ1ZmZlcl9wdXQoZnJvbSk7Cj4gKyAgICAgICBpZiAo b3ZlcmxheS0+ZnJvbnRidWZmZXIpCj4gKyAgICAgICAgICAgICAgIGludGVsX2Zyb250YnVmZmVy X3B1dChvdmVybGF5LT5mcm9udGJ1ZmZlcik7Cj4gKyAgICAgICBvdmVybGF5LT5mcm9udGJ1ZmZl ciA9IGZyb250YnVmZmVyOwoKQW5kIHRoaXMgd2lsbCBkcm9wIHRoZSByZWYgb24gb3ZlcmxheS0+ ZnJvbnRidWZmZXIgYXMgd2UgZmxpcCB0byBOVUxMIG9uCnNodXRkb3duLgoKTm93IGlmIG9ubHkg c29tZW9uZSBzdGlsbCBoYWQgdGhlIGNvZGUgdG8gZXhwb3NlIHNwcml0ZXMgaW5zdGVhZCBvZgpv dmVybGF5cy4KLUNocmlzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=