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=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,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 2E7D2C28CF6 for ; Fri, 3 Aug 2018 17:03:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C3A2C2177A for ; Fri, 3 Aug 2018 17:03:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Segw7ZRT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C3A2C2177A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728116AbeHCTBB (ORCPT ); Fri, 3 Aug 2018 15:01:01 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:39942 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727171AbeHCTBB (ORCPT ); Fri, 3 Aug 2018 15:01:01 -0400 Received: by mail-wr1-f68.google.com with SMTP id h15-v6so6026852wrs.7 for ; Fri, 03 Aug 2018 10:03:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=34oHgtuMXg+nXOkIyKByaSY+iRDDxhenRKBQzKu2ooo=; b=Segw7ZRTvKDlhOaUWBkvOxCXYXBd5CVlK+Ux73DCmw9X250WEjoJcKbBlJ9eNzeZcF 1pzP/RXtVbPQ5kemu5hX0boKPPc3pOPqS0amtyHQbzk/58uTW+uxn1a1OTvufOfzd6sC 8EPRpuKipMov0SMK/OWgShET7Bg/UUNLQnuIqbIwBE3pH5evI3dmt2nvaIg9HA8IYpbO n6KDohzpgoYdATttwdJg/d2Rbmzu3tCvzXM17Lr6nzDc7f0Zdpgub5IfkXnE9Q9M/fUM R+hz6KHa6pA1OIKX3BxCI+xHllQeQDjQ10ckxEIKbcK95vWc2g1C5ZrGc1qgKNjAZWjX jQNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=34oHgtuMXg+nXOkIyKByaSY+iRDDxhenRKBQzKu2ooo=; b=A66582JgwGqJAbXF9X8EfhFJZV6CX85jOs/PtfwQXhnWlPCXspzG5sm3xUgHIMLZE/ FrxNVJYddpwHqb4LJvkqWziZxlxV5ldeu0u/gS74vx9FHqmLrI1nLT5ZyZzUNPH3GWFL z34SN0kIYWLsCgqVly1fgEJjwTd4Qo9+w/WIPPM5cqEdvM9jXASq/YFFIC6Atyhvdqhn qaZrxeERsaOqqsZWaJHUtHobhcV4vWapOsZWgASlHiaAdXlXt/vv0HxdAQg2EB8YWj9v dqZZXC4EGju9CZfmbfraeiquYMsi1g/1OrEgpdm+IdFvDv1KBX7Vl9qTDTJBfVbqaWwy oF5Q== X-Gm-Message-State: AOUpUlEtmTasWZzQ9vwb8tNhPKagbUZrXr+2UznhBMVcM+m7R+lRK0G8 GgoV1FkTxXlZ6hBUlCwMpw6YzZaaTa2IwyRrGfs= X-Google-Smtp-Source: AAOMgpdAzsiWuacH67ALTT1msLbfSvi7G1Tn30srSAhjPJzGQwIr7u7/XFomL5ryaNVD8wv1lhX6rAYQOHO+ZS+xwG0= X-Received: by 2002:adf:ffc7:: with SMTP id x7-v6mr3234798wrs.137.1533315831117; Fri, 03 Aug 2018 10:03:51 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1c:178a:0:0:0:0:0 with HTTP; Fri, 3 Aug 2018 10:03:50 -0700 (PDT) In-Reply-To: References: <20180724082213.25677-1-robert.foss@collabora.com> From: Emil Velikov Date: Fri, 3 Aug 2018 18:03:50 +0100 Message-ID: Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes To: Martin Fuzzey Cc: Robert Foss , David Airlie , Brian Paul , ML dri-devel , Eric Engestrom , Gustavo Padovan , "Linux-Kernel@Vger. Kernel. Org" , Maarten Lankhorst , Nicolas Norvez , Rob Herring , Sean Paul , Tomasz Figa , Tomeu Vizoso Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3 August 2018 at 16:06, Martin Fuzzey wrote: > Hi Emil, > > On 03/08/18 14:35, Emil Velikov wrote: >> >> Hi Martin, >> >> On 1 August 2018 at 15:24, Martin Fuzzey >> wrote: >> >> Let's start with the not-so obvious question: >> Why does one open the imx as render node? >> >> Of the top of my head: >> There is nothing in egl/android that should require an authenticated >> device. >> Hence, using a card node should be fine - the etnaviv code opens the >> render node it needs. > > > Yes, the problem is not in egl/android but in the scanout buffer allocation > code. > > etnaviv opens the render node on the *GPU* (for submitting GPU commands), > that part is fine. > > But scanout buffers need to be allocated from imx-drm not etnaviv. > > This done by renderonly_create_kms_dumb_buffer_for_resource() > [src/gallium/auxiliary/renderonly/renderonly.c] > Which uses DRM_IOCTL_MODE_CREATE_DUMB followed by > DRM_IOCTL_PRIME_FD_TO_HANDLE > on the "kms_fd" (probably poorly named because it's not actually used for > modesetting) > see imx_drm_screen_create()[ src/gallium/winsys/imx/drm/imx_drm_winsys.c] > > > If the card node is used DRM_IOCTL_MODE_CREATE_DUMB works but > DRM_IOCTL_PRIME_FD_TO_HANDLE fails, because the permissions are > DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW > Right I missed the DRM_AUTH, in the fd <> handle IOCTLs. So in order for things to work, we'd need to either: - allow dumb buffers for render nodes, or - drop the DRM_AUTH for fd <> handle imports Pointing an alternative solution, for kernel developers to analyse and make a decision. > > In android 8.1 the hardware composer runs in a seperate process and it has > to use the card node and be drm master (to use the KMS API), > therefore, when the surface flinger calls > renderonly_create_kms_dumb_buffer_for_resource() it is not authenticated. > > Making surface flinger use a render node fixes the problem for > DRM_IOCTL_PRIME_FD_TO_HANDLE (because that already has DRM_RENDER_ALLOW), > but DRM_IOCTL_MODE_CREATE_DUMB now fails without the patch. > > > This probably worked in previous versions of Android where surface flinger > and hwc were all in the same process. > There has been varying hacks for Android through the years. Bringing details into the discussion will result in a significant diversion. Something we could avoid, for the time being ;-) Thanks Emil From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes Date: Fri, 3 Aug 2018 18:03:50 +0100 Message-ID: References: <20180724082213.25677-1-robert.foss@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72FEE6E78B for ; Fri, 3 Aug 2018 17:03:52 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id h9-v6so6047611wro.3 for ; Fri, 03 Aug 2018 10:03:52 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Martin Fuzzey Cc: Tomeu Vizoso , Nicolas Norvez , Robert Foss , "Linux-Kernel@Vger. Kernel. Org" , ML dri-devel , Tomasz Figa , Eric Engestrom , David Airlie , Brian Paul List-Id: dri-devel@lists.freedesktop.org T24gMyBBdWd1c3QgMjAxOCBhdCAxNjowNiwgTWFydGluIEZ1enpleSA8bWFydGluLmZ1enpleUBm bG93YmlyZC5ncm91cD4gd3JvdGU6Cj4gSGkgRW1pbCwKPgo+IE9uIDAzLzA4LzE4IDE0OjM1LCBF bWlsIFZlbGlrb3Ygd3JvdGU6Cj4+Cj4+IEhpIE1hcnRpbiwKPj4KPj4gT24gMSBBdWd1c3QgMjAx OCBhdCAxNToyNCwgTWFydGluIEZ1enpleSA8bWFydGluLmZ1enpleUBmbG93YmlyZC5ncm91cD4K Pj4gd3JvdGU6Cj4+Cj4+IExldCdzIHN0YXJ0IHdpdGggdGhlIG5vdC1zbyBvYnZpb3VzIHF1ZXN0 aW9uOgo+PiBXaHkgZG9lcyBvbmUgb3BlbiB0aGUgaW14IGFzIHJlbmRlciBub2RlPwo+Pgo+PiBP ZiB0aGUgdG9wIG9mIG15IGhlYWQ6Cj4+IFRoZXJlIGlzIG5vdGhpbmcgaW4gZWdsL2FuZHJvaWQg dGhhdCBzaG91bGQgcmVxdWlyZSBhbiBhdXRoZW50aWNhdGVkCj4+IGRldmljZS4KPj4gSGVuY2Us IHVzaW5nIGEgY2FyZCBub2RlIHNob3VsZCBiZSBmaW5lIC0gdGhlIGV0bmF2aXYgY29kZSBvcGVu cyB0aGUKPj4gcmVuZGVyIG5vZGUgaXQgbmVlZHMuCj4KPgo+IFllcywgdGhlIHByb2JsZW0gaXMg bm90IGluIGVnbC9hbmRyb2lkIGJ1dCBpbiB0aGUgc2Nhbm91dCBidWZmZXIgYWxsb2NhdGlvbgo+ IGNvZGUuCj4KPiBldG5hdml2IG9wZW5zIHRoZSByZW5kZXIgbm9kZSBvbiB0aGUgKkdQVSogKGZv ciBzdWJtaXR0aW5nIEdQVSBjb21tYW5kcyksCj4gdGhhdCBwYXJ0IGlzIGZpbmUuCj4KPiBCdXQg c2Nhbm91dCBidWZmZXJzIG5lZWQgdG8gYmUgYWxsb2NhdGVkIGZyb20gaW14LWRybSBub3QgZXRu YXZpdi4KPgo+IFRoaXMgZG9uZSBieSByZW5kZXJvbmx5X2NyZWF0ZV9rbXNfZHVtYl9idWZmZXJf Zm9yX3Jlc291cmNlKCkKPiBbc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3JlbmRlcm9ubHkvcmVuZGVy b25seS5jXQo+IFdoaWNoIHVzZXMgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIgZm9sbG93ZWQg YnkKPiBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExFCj4gb24gdGhlICJrbXNfZmQiIChwcm9i YWJseSBwb29ybHkgbmFtZWQgYmVjYXVzZSBpdCdzIG5vdCBhY3R1YWxseSB1c2VkIGZvcgo+IG1v ZGVzZXR0aW5nKQo+IHNlZSBpbXhfZHJtX3NjcmVlbl9jcmVhdGUoKVsgc3JjL2dhbGxpdW0vd2lu c3lzL2lteC9kcm0vaW14X2RybV93aW5zeXMuY10KPgo+Cj4gSWYgdGhlIGNhcmQgbm9kZSBpcyB1 c2VkIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CIHdvcmtzIGJ1dAo+IERSTV9JT0NUTF9QUklN RV9GRF9UT19IQU5ETEUgZmFpbHMsIGJlY2F1c2UgdGhlIHBlcm1pc3Npb25zIGFyZQo+IERSTV9B VVRIfERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XCj4KUmlnaHQgSSBtaXNzZWQgdGhlIERS TV9BVVRILCBpbiB0aGUgZmQgPD4gaGFuZGxlIElPQ1RMcy4KU28gaW4gb3JkZXIgZm9yIHRoaW5n cyB0byB3b3JrLCB3ZSdkIG5lZWQgdG8gZWl0aGVyOgogLSBhbGxvdyBkdW1iIGJ1ZmZlcnMgZm9y IHJlbmRlciBub2Rlcywgb3IKIC0gZHJvcCB0aGUgRFJNX0FVVEggZm9yIGZkIDw+IGhhbmRsZSBp bXBvcnRzCgpQb2ludGluZyBhbiBhbHRlcm5hdGl2ZSBzb2x1dGlvbiwgZm9yIGtlcm5lbCBkZXZl bG9wZXJzIHRvIGFuYWx5c2UgYW5kCm1ha2UgYSBkZWNpc2lvbi4KCj4KPiBJbiBhbmRyb2lkIDgu MSB0aGUgaGFyZHdhcmUgY29tcG9zZXIgcnVucyBpbiBhIHNlcGVyYXRlIHByb2Nlc3MgYW5kIGl0 IGhhcwo+IHRvIHVzZSB0aGUgY2FyZCBub2RlIGFuZCBiZSBkcm0gbWFzdGVyICh0byB1c2UgdGhl IEtNUyBBUEkpLAo+IHRoZXJlZm9yZSwgd2hlbiB0aGUgc3VyZmFjZSBmbGluZ2VyIGNhbGxzCj4g cmVuZGVyb25seV9jcmVhdGVfa21zX2R1bWJfYnVmZmVyX2Zvcl9yZXNvdXJjZSgpIGl0IGlzIG5v dCBhdXRoZW50aWNhdGVkLgo+Cj4gTWFraW5nIHN1cmZhY2UgZmxpbmdlciB1c2UgYSByZW5kZXIg bm9kZSBmaXhlcyB0aGUgcHJvYmxlbSBmb3IKPiBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExF IChiZWNhdXNlIHRoYXQgYWxyZWFkeSBoYXMgRFJNX1JFTkRFUl9BTExPVyksCj4gYnV0IERSTV9J T0NUTF9NT0RFX0NSRUFURV9EVU1CIG5vdyBmYWlscyB3aXRob3V0IHRoZSBwYXRjaC4KPgo+Cj4g VGhpcyBwcm9iYWJseSB3b3JrZWQgaW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgQW5kcm9pZCB3aGVy ZSBzdXJmYWNlIGZsaW5nZXIKPiBhbmQgaHdjIHdlcmUgYWxsIGluIHRoZSBzYW1lIHByb2Nlc3Mu Cj4KVGhlcmUgaGFzIGJlZW4gdmFyeWluZyBoYWNrcyBmb3IgQW5kcm9pZCB0aHJvdWdoIHRoZSB5 ZWFycy4gQnJpbmdpbmcKZGV0YWlscyBpbnRvIHRoZSBkaXNjdXNzaW9uIHdpbGwgcmVzdWx0IGlu IGEgc2lnbmlmaWNhbnQgZGl2ZXJzaW9uLgpTb21ldGhpbmcgd2UgY291bGQgYXZvaWQsIGZvciB0 aGUgdGltZSBiZWluZyA7LSkKClRoYW5rcwpFbWlsCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=