From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH 7/8] drm/panfrost: Add the panfrost_gem_mapping concept Date: Fri, 29 Nov 2019 22:36:29 +0100 Message-ID: <20191129223629.3aaab761@collabora.com> References: <20191129135908.2439529-1-boris.brezillon@collabora.com> <20191129135908.2439529-8-boris.brezillon@collabora.com> <20191129201459.GS624164@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20191129201459.GS624164@phenom.ffwll.local> Sender: stable-owner@vger.kernel.org To: Daniel Vetter Cc: Rob Herring , Tomeu Vizoso , Alyssa Rosenzweig , Steven Price , stable@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Fri, 29 Nov 2019 21:14:59 +0100 Daniel Vetter wrote: > On Fri, Nov 29, 2019 at 02:59:07PM +0100, Boris Brezillon wrote: > > With the introduction of per-FD address space, the same BO can be mapped > > in different address space if the BO is globally visible (GEM_FLINK) > > Also dma-buf self-imports for wayland/dri3 ... Indeed, I'll extend the commit message to mention that case. > > > and opened in different context. The current implementation does not > > take case into account, and attaches the mapping directly to the > > panfrost_gem_object. > > > > Let's create a panfrost_gem_mapping struct and allow multiple mappings > > per BO. > > > > The mappings are refcounted, which helps solve another problem where > > mappings were teared down (GEM handle closed by userspace) while GPU > > jobs accessing those BOs were still in-flight. Jobs now keep a > > reference on the mappings they use. > > uh what. > > tbh this sounds bad enough (as in how did a desktop on panfrost ever work) Well, we didn't discover this problem until recently because: 1/ We have a BO cache in mesa, and until recently, this cache could only grow (no entry eviction and no MADVISE support), meaning that BOs were staying around forever until the app was killed. 2/ Mappings were teared down at BO destruction time before commit a5efb4c9a562 ("drm/panfrost: Restructure the GEM object creation"), and jobs are retaining references to all the BO they access. 3/ The mesa driver was serializing GPU jobs, and only releasing the BO reference when the job was done (wait on the completion fence). This has recently been changed, and now BOs are returned to the cache as soon as the job has been submitted to the kernel. When that happens,those BOs are marked purgeable which means the kernel can reclaim them when it's under memory pressure. So yes, kernel 5.4 with a recent mesa version is currently subject to GPU page-fault storms when the system starts reclaiming memory. > that I think you really want a few igts to test this stuff. I'll see what I can come up with (not sure how to easily detect pagefaults from userspace). 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=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 autolearn=no 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 37A95C432C0 for ; Fri, 29 Nov 2019 21:36:36 +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 14A25206B5 for ; Fri, 29 Nov 2019 21:36:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14A25206B5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9228F6E957; Fri, 29 Nov 2019 21:36:35 +0000 (UTC) Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7CF306E957 for ; Fri, 29 Nov 2019 21:36:34 +0000 (UTC) Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:b93f:9fae:b276:a89a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 1FB5F283BCB; Fri, 29 Nov 2019 21:36:33 +0000 (GMT) Date: Fri, 29 Nov 2019 22:36:29 +0100 From: Boris Brezillon To: Daniel Vetter Subject: Re: [PATCH 7/8] drm/panfrost: Add the panfrost_gem_mapping concept Message-ID: <20191129223629.3aaab761@collabora.com> In-Reply-To: <20191129201459.GS624164@phenom.ffwll.local> References: <20191129135908.2439529-1-boris.brezillon@collabora.com> <20191129135908.2439529-8-boris.brezillon@collabora.com> <20191129201459.GS624164@phenom.ffwll.local> Organization: Collabora X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: stable@vger.kernel.org, Steven Price , Rob Herring , dri-devel@lists.freedesktop.org, Alyssa Rosenzweig Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191129213629.AiNh3XJniTWfr6Ndvx0N6jEqpVjiMwf9jhXXARUCro4@z> T24gRnJpLCAyOSBOb3YgMjAxOSAyMToxNDo1OSArMDEwMApEYW5pZWwgVmV0dGVyIDxkYW5pZWxA ZmZ3bGwuY2g+IHdyb3RlOgoKPiBPbiBGcmksIE5vdiAyOSwgMjAxOSBhdCAwMjo1OTowN1BNICsw MTAwLCBCb3JpcyBCcmV6aWxsb24gd3JvdGU6Cj4gPiBXaXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2Yg cGVyLUZEIGFkZHJlc3Mgc3BhY2UsIHRoZSBzYW1lIEJPIGNhbiBiZSBtYXBwZWQKPiA+IGluIGRp ZmZlcmVudCBhZGRyZXNzIHNwYWNlIGlmIHRoZSBCTyBpcyBnbG9iYWxseSB2aXNpYmxlIChHRU1f RkxJTkspICAKPiAKPiBBbHNvIGRtYS1idWYgc2VsZi1pbXBvcnRzIGZvciB3YXlsYW5kL2RyaTMg Li4uCgpJbmRlZWQsIEknbGwgZXh0ZW5kIHRoZSBjb21taXQgbWVzc2FnZSB0byBtZW50aW9uIHRo YXQgY2FzZS4KCj4gCj4gPiBhbmQgb3BlbmVkIGluIGRpZmZlcmVudCBjb250ZXh0LiBUaGUgY3Vy cmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdAo+ID4gdGFrZSBjYXNlIGludG8gYWNjb3VudCwg YW5kIGF0dGFjaGVzIHRoZSBtYXBwaW5nIGRpcmVjdGx5IHRvIHRoZQo+ID4gcGFuZnJvc3RfZ2Vt X29iamVjdC4KPiA+IAo+ID4gTGV0J3MgY3JlYXRlIGEgcGFuZnJvc3RfZ2VtX21hcHBpbmcgc3Ry dWN0IGFuZCBhbGxvdyBtdWx0aXBsZSBtYXBwaW5ncwo+ID4gcGVyIEJPLgo+ID4gCj4gPiBUaGUg bWFwcGluZ3MgYXJlIHJlZmNvdW50ZWQsIHdoaWNoIGhlbHBzIHNvbHZlIGFub3RoZXIgcHJvYmxl bSB3aGVyZQo+ID4gbWFwcGluZ3Mgd2VyZSB0ZWFyZWQgZG93biAoR0VNIGhhbmRsZSBjbG9zZWQg YnkgdXNlcnNwYWNlKSB3aGlsZSBHUFUKPiA+IGpvYnMgYWNjZXNzaW5nIHRob3NlIEJPcyB3ZXJl IHN0aWxsIGluLWZsaWdodC4gSm9icyBub3cga2VlcCBhCj4gPiByZWZlcmVuY2Ugb24gdGhlIG1h cHBpbmdzIHRoZXkgdXNlLiAgCj4gCj4gdWggd2hhdC4KPiAKPiB0YmggdGhpcyBzb3VuZHMgYmFk IGVub3VnaCAoYXMgaW4gaG93IGRpZCBhIGRlc2t0b3Agb24gcGFuZnJvc3QgZXZlciB3b3JrKQoK V2VsbCwgd2UgZGlkbid0IGRpc2NvdmVyIHRoaXMgcHJvYmxlbSB1bnRpbCByZWNlbnRseSBiZWNh dXNlOgoKMS8gV2UgaGF2ZSBhIEJPIGNhY2hlIGluIG1lc2EsIGFuZCB1bnRpbCByZWNlbnRseSwg dGhpcyBjYWNoZSBjb3VsZApvbmx5IGdyb3cgKG5vIGVudHJ5IGV2aWN0aW9uIGFuZCBubyBNQURW SVNFIHN1cHBvcnQpLCBtZWFuaW5nIHRoYXQgQk9zCndlcmUgc3RheWluZyBhcm91bmQgZm9yZXZl ciB1bnRpbCB0aGUgYXBwIHdhcyBraWxsZWQuCgoyLyBNYXBwaW5ncyB3ZXJlIHRlYXJlZCBkb3du IGF0IEJPIGRlc3RydWN0aW9uIHRpbWUgYmVmb3JlIGNvbW1pdAphNWVmYjRjOWE1NjIgKCJkcm0v cGFuZnJvc3Q6IFJlc3RydWN0dXJlIHRoZSBHRU0gb2JqZWN0IGNyZWF0aW9uIiksIGFuZApqb2Jz IGFyZSByZXRhaW5pbmcgcmVmZXJlbmNlcyB0byBhbGwgdGhlIEJPIHRoZXkgYWNjZXNzLgoKMy8g VGhlIG1lc2EgZHJpdmVyIHdhcyBzZXJpYWxpemluZyBHUFUgam9icywgYW5kIG9ubHkgcmVsZWFz aW5nIHRoZSBCTwpyZWZlcmVuY2Ugd2hlbiB0aGUgam9iIHdhcyBkb25lICh3YWl0IG9uIHRoZSBj b21wbGV0aW9uIGZlbmNlKS4gVGhpcwpoYXMgcmVjZW50bHkgYmVlbiBjaGFuZ2VkLCBhbmQgbm93 IEJPcyBhcmUgcmV0dXJuZWQgdG8gdGhlIGNhY2hlIGFzCnNvb24gYXMgdGhlIGpvYiBoYXMgYmVl biBzdWJtaXR0ZWQgdG8gdGhlIGtlcm5lbC4gV2hlbiB0aGF0CmhhcHBlbnMsdGhvc2UgQk9zIGFy ZSBtYXJrZWQgcHVyZ2VhYmxlIHdoaWNoIG1lYW5zIHRoZSBrZXJuZWwgY2FuCnJlY2xhaW0gdGhl bSB3aGVuIGl0J3MgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgoKU28geWVzLCBrZXJuZWwgNS40IHdp dGggYSByZWNlbnQgbWVzYSB2ZXJzaW9uIGlzIGN1cnJlbnRseSBzdWJqZWN0IHRvCkdQVSBwYWdl LWZhdWx0IHN0b3JtcyB3aGVuIHRoZSBzeXN0ZW0gc3RhcnRzIHJlY2xhaW1pbmcgbWVtb3J5LgoK PiB0aGF0IEkgdGhpbmsgeW91IHJlYWxseSB3YW50IGEgZmV3IGlndHMgdG8gdGVzdCB0aGlzIHN0 dWZmLgoKSSdsbCBzZWUgd2hhdCBJIGNhbiBjb21lIHVwIHdpdGggKG5vdCBzdXJlIGhvdyB0byBl YXNpbHkgZGV0ZWN0CnBhZ2VmYXVsdHMgZnJvbSB1c2Vyc3BhY2UpLgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=