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.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED,USER_AGENT_MUTT 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 31CB4C46469 for ; Fri, 3 Aug 2018 19:50:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CBA032178D for ; Fri, 3 Aug 2018 19:50:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="mGzO3pMr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CBA032178D Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=chromium.org 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 S1731982AbeHCVsK (ORCPT ); Fri, 3 Aug 2018 17:48:10 -0400 Received: from mail-yw1-f66.google.com ([209.85.161.66]:39260 "EHLO mail-yw1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728470AbeHCVsJ (ORCPT ); Fri, 3 Aug 2018 17:48:09 -0400 Received: by mail-yw1-f66.google.com with SMTP id r184-v6so1404335ywg.6 for ; Fri, 03 Aug 2018 12:50:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=/8eorP3SBVJgegrat/pBBkRyKnsxwNw2tVlTziNUwzA=; b=mGzO3pMriJtX+H4GhrFGf9l6KbVr6v4UcbosbBele8EsBgNBb/TpYoE5iQlzM2wBde +CIUSZxCPyQ8yBhCrRgHDuwqrZlI+oUlQKf/3n0d15JcoWB8JjjbvKKgn6aXdomGt6+X 3H5kffqe4XBd8RUS/oRhKRwKOrMIfaljwqev4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=/8eorP3SBVJgegrat/pBBkRyKnsxwNw2tVlTziNUwzA=; b=UwHoDzi+q/ejI5dFLg9eX6J18HZG5dtPBzLTJqtMTpcs5o0tFPR1uGi4a0g/0zaRM7 hlGpfqgNQWP1xXJxfU/1m1NB6VrOtwiT4JqyKT6tOKTAvyy1jYz0hYxkyGFgK/9TLcy7 4/4yB5MyYJSXw/JbD0EAkOJBSYqJOwSnY/9rbjdcPmJnBra+yrlShauKDbNohlFjr1g7 j2wmmrrkk79RCLHetVf1Dvaf71qLw9USouFXQrsyehoPK8GHKbb0vbWoYLlfNnGTWE82 Suuh9QzjlsITPTh6UO8qh5TsIV9ggdkuP/5wumXzn9ZKTX2uufjtx8rlFE4Ux50MKqgU Psdw== X-Gm-Message-State: AOUpUlHzKfYTrwIeY2X2M1z8lcwJsApLO4wA1aUmQ44yOHN0Z7zK0956 h6s9/pi5YJNYEf1VU14KZiW5xA== X-Google-Smtp-Source: AAOMgpctwxkGGnbBivsMaKRgMt4XDVZlWUoOaHsvTYuMPpM0OUFR4Pl7k7IyOWMmAzgi9z4k7Vc9jg== X-Received: by 2002:a0d:e044:: with SMTP id j65-v6mr841699ywe.202.1533325826432; Fri, 03 Aug 2018 12:50:26 -0700 (PDT) Received: from localhost ([2620:0:1013:11:ad55:b1db:adfe:3b9f]) by smtp.gmail.com with ESMTPSA id r3-v6sm3547016ywr.80.2018.08.03.12.50.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 03 Aug 2018 12:50:25 -0700 (PDT) Date: Fri, 3 Aug 2018 15:50:25 -0400 From: Sean Paul To: Emil Velikov Cc: Martin Fuzzey , 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 Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes Message-ID: <20180803195025.GO20303@art_vandelay> References: <20180724082213.25677-1-robert.foss@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 03, 2018 at 06:03:50PM +0100, Emil Velikov wrote: > 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 ;-) Did someone say diversion?!? The way this was handled prior to using render/control nodes in drm_hwc/[drm/gbm]_gralloc is that all modesetting was done via gralloc which was master. The hwc implementation was basically a proxy backchanneling all of the work to gralloc. Anyways, we probably don't want to go back there. Fwiw, I'd lean towards allowing DUMB allocation from the render nodes. I understand it limits use cases that are undesirable, but it is also limiting usecases that are desirable. So, given that people are going to get "creative" regardless of how many safety railings we put up, we shouldn't make things unnecessarily hard on other trying to Get Work Done. Sean [Disclaimer: I'm totally and completely biased on this issue] > > Thanks > Emil -- Sean Paul, Software Engineer, Google / Chromium OS From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes Date: Fri, 3 Aug 2018 15:50:25 -0400 Message-ID: <20180803195025.GO20303@art_vandelay> 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-yw1-xc43.google.com (mail-yw1-xc43.google.com [IPv6:2607:f8b0:4864:20::c43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3AB026E0DC for ; Fri, 3 Aug 2018 19:50:27 +0000 (UTC) Received: by mail-yw1-xc43.google.com with SMTP id l9-v6so1399956ywc.11 for ; Fri, 03 Aug 2018 12:50:27 -0700 (PDT) Content-Disposition: inline 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: Emil Velikov Cc: Tomeu Vizoso , Nicolas Norvez , Robert Foss , "Linux-Kernel@Vger. Kernel. Org" , ML dri-devel , Tomasz Figa , Eric Engestrom , David Airlie , Brian Paul , Martin Fuzzey List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBdWcgMDMsIDIwMTggYXQgMDY6MDM6NTBQTSArMDEwMCwgRW1pbCBWZWxpa292IHdy b3RlOgo+IE9uIDMgQXVndXN0IDIwMTggYXQgMTY6MDYsIE1hcnRpbiBGdXp6ZXkgPG1hcnRpbi5m dXp6ZXlAZmxvd2JpcmQuZ3JvdXA+IHdyb3RlOgo+ID4gSGkgRW1pbCwKPiA+Cj4gPiBPbiAwMy8w OC8xOCAxNDozNSwgRW1pbCBWZWxpa292IHdyb3RlOgo+ID4+Cj4gPj4gSGkgTWFydGluLAo+ID4+ Cj4gPj4gT24gMSBBdWd1c3QgMjAxOCBhdCAxNToyNCwgTWFydGluIEZ1enpleSA8bWFydGluLmZ1 enpleUBmbG93YmlyZC5ncm91cD4KPiA+PiB3cm90ZToKPiA+Pgo+ID4+IExldCdzIHN0YXJ0IHdp dGggdGhlIG5vdC1zbyBvYnZpb3VzIHF1ZXN0aW9uOgo+ID4+IFdoeSBkb2VzIG9uZSBvcGVuIHRo ZSBpbXggYXMgcmVuZGVyIG5vZGU/Cj4gPj4KPiA+PiBPZiB0aGUgdG9wIG9mIG15IGhlYWQ6Cj4g Pj4gVGhlcmUgaXMgbm90aGluZyBpbiBlZ2wvYW5kcm9pZCB0aGF0IHNob3VsZCByZXF1aXJlIGFu IGF1dGhlbnRpY2F0ZWQKPiA+PiBkZXZpY2UuCj4gPj4gSGVuY2UsIHVzaW5nIGEgY2FyZCBub2Rl IHNob3VsZCBiZSBmaW5lIC0gdGhlIGV0bmF2aXYgY29kZSBvcGVucyB0aGUKPiA+PiByZW5kZXIg bm9kZSBpdCBuZWVkcy4KPiA+Cj4gPgo+ID4gWWVzLCB0aGUgcHJvYmxlbSBpcyBub3QgaW4gZWds L2FuZHJvaWQgYnV0IGluIHRoZSBzY2Fub3V0IGJ1ZmZlciBhbGxvY2F0aW9uCj4gPiBjb2RlLgo+ ID4KPiA+IGV0bmF2aXYgb3BlbnMgdGhlIHJlbmRlciBub2RlIG9uIHRoZSAqR1BVKiAoZm9yIHN1 Ym1pdHRpbmcgR1BVIGNvbW1hbmRzKSwKPiA+IHRoYXQgcGFydCBpcyBmaW5lLgo+ID4KPiA+IEJ1 dCBzY2Fub3V0IGJ1ZmZlcnMgbmVlZCB0byBiZSBhbGxvY2F0ZWQgZnJvbSBpbXgtZHJtIG5vdCBl dG5hdml2Lgo+ID4KPiA+IFRoaXMgZG9uZSBieSByZW5kZXJvbmx5X2NyZWF0ZV9rbXNfZHVtYl9i dWZmZXJfZm9yX3Jlc291cmNlKCkKPiA+IFtzcmMvZ2FsbGl1bS9hdXhpbGlhcnkvcmVuZGVyb25s eS9yZW5kZXJvbmx5LmNdCj4gPiBXaGljaCB1c2VzIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1C IGZvbGxvd2VkIGJ5Cj4gPiBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExFCj4gPiBvbiB0aGUg Imttc19mZCIgKHByb2JhYmx5IHBvb3JseSBuYW1lZCBiZWNhdXNlIGl0J3Mgbm90IGFjdHVhbGx5 IHVzZWQgZm9yCj4gPiBtb2Rlc2V0dGluZykKPiA+IHNlZSBpbXhfZHJtX3NjcmVlbl9jcmVhdGUo KVsgc3JjL2dhbGxpdW0vd2luc3lzL2lteC9kcm0vaW14X2RybV93aW5zeXMuY10KPiA+Cj4gPgo+ ID4gSWYgdGhlIGNhcmQgbm9kZSBpcyB1c2VkIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CIHdv cmtzIGJ1dAo+ID4gRFJNX0lPQ1RMX1BSSU1FX0ZEX1RPX0hBTkRMRSBmYWlscywgYmVjYXVzZSB0 aGUgcGVybWlzc2lvbnMgYXJlCj4gPiBEUk1fQVVUSHxEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9B TExPVwo+ID4KPiBSaWdodCBJIG1pc3NlZCB0aGUgRFJNX0FVVEgsIGluIHRoZSBmZCA8PiBoYW5k bGUgSU9DVExzLgo+IFNvIGluIG9yZGVyIGZvciB0aGluZ3MgdG8gd29yaywgd2UnZCBuZWVkIHRv IGVpdGhlcjoKPiAgLSBhbGxvdyBkdW1iIGJ1ZmZlcnMgZm9yIHJlbmRlciBub2Rlcywgb3IKPiAg LSBkcm9wIHRoZSBEUk1fQVVUSCBmb3IgZmQgPD4gaGFuZGxlIGltcG9ydHMKPiAKPiBQb2ludGlu ZyBhbiBhbHRlcm5hdGl2ZSBzb2x1dGlvbiwgZm9yIGtlcm5lbCBkZXZlbG9wZXJzIHRvIGFuYWx5 c2UgYW5kCj4gbWFrZSBhIGRlY2lzaW9uLgo+IAo+ID4KPiA+IEluIGFuZHJvaWQgOC4xIHRoZSBo YXJkd2FyZSBjb21wb3NlciBydW5zIGluIGEgc2VwZXJhdGUgcHJvY2VzcyBhbmQgaXQgaGFzCj4g PiB0byB1c2UgdGhlIGNhcmQgbm9kZSBhbmQgYmUgZHJtIG1hc3RlciAodG8gdXNlIHRoZSBLTVMg QVBJKSwKPiA+IHRoZXJlZm9yZSwgd2hlbiB0aGUgc3VyZmFjZSBmbGluZ2VyIGNhbGxzCj4gPiBy ZW5kZXJvbmx5X2NyZWF0ZV9rbXNfZHVtYl9idWZmZXJfZm9yX3Jlc291cmNlKCkgaXQgaXMgbm90 IGF1dGhlbnRpY2F0ZWQuCj4gPgo+ID4gTWFraW5nIHN1cmZhY2UgZmxpbmdlciB1c2UgYSByZW5k ZXIgbm9kZSBmaXhlcyB0aGUgcHJvYmxlbSBmb3IKPiA+IERSTV9JT0NUTF9QUklNRV9GRF9UT19I QU5ETEUgKGJlY2F1c2UgdGhhdCBhbHJlYWR5IGhhcyBEUk1fUkVOREVSX0FMTE9XKSwKPiA+IGJ1 dCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiBub3cgZmFpbHMgd2l0aG91dCB0aGUgcGF0Y2gu Cj4gPgo+ID4KPiA+IFRoaXMgcHJvYmFibHkgd29ya2VkIGluIHByZXZpb3VzIHZlcnNpb25zIG9m IEFuZHJvaWQgd2hlcmUgc3VyZmFjZSBmbGluZ2VyCj4gPiBhbmQgaHdjIHdlcmUgYWxsIGluIHRo ZSBzYW1lIHByb2Nlc3MuCj4gPgo+IFRoZXJlIGhhcyBiZWVuIHZhcnlpbmcgaGFja3MgZm9yIEFu ZHJvaWQgdGhyb3VnaCB0aGUgeWVhcnMuIEJyaW5naW5nCj4gZGV0YWlscyBpbnRvIHRoZSBkaXNj dXNzaW9uIHdpbGwgcmVzdWx0IGluIGEgc2lnbmlmaWNhbnQgZGl2ZXJzaW9uLgo+IFNvbWV0aGlu ZyB3ZSBjb3VsZCBhdm9pZCwgZm9yIHRoZSB0aW1lIGJlaW5nIDstKQoKRGlkIHNvbWVvbmUgc2F5 IGRpdmVyc2lvbj8hPyBUaGUgd2F5IHRoaXMgd2FzIGhhbmRsZWQgcHJpb3IgdG8gdXNpbmcKcmVu ZGVyL2NvbnRyb2wgbm9kZXMgaW4gZHJtX2h3Yy9bZHJtL2dibV1fZ3JhbGxvYyBpcyB0aGF0IGFs bCBtb2Rlc2V0dGluZyB3YXMKZG9uZSB2aWEgZ3JhbGxvYyB3aGljaCB3YXMgbWFzdGVyLiBUaGUg aHdjIGltcGxlbWVudGF0aW9uIHdhcyBiYXNpY2FsbHkgYSBwcm94eQpiYWNrY2hhbm5lbGluZyBh bGwgb2YgdGhlIHdvcmsgdG8gZ3JhbGxvYy4gCgpBbnl3YXlzLCB3ZSBwcm9iYWJseSBkb24ndCB3 YW50IHRvIGdvIGJhY2sgdGhlcmUuCgpGd2l3LCBJJ2QgbGVhbiB0b3dhcmRzIGFsbG93aW5nIERV TUIgYWxsb2NhdGlvbiBmcm9tIHRoZSByZW5kZXIgbm9kZXMuIEkKdW5kZXJzdGFuZCBpdCBsaW1p dHMgdXNlIGNhc2VzIHRoYXQgYXJlIHVuZGVzaXJhYmxlLCBidXQgaXQgaXMgYWxzbyBsaW1pdGlu Zwp1c2VjYXNlcyB0aGF0IGFyZSBkZXNpcmFibGUuIFNvLCBnaXZlbiB0aGF0IHBlb3BsZSBhcmUg Z29pbmcgdG8gZ2V0ICJjcmVhdGl2ZSIKcmVnYXJkbGVzcyBvZiBob3cgbWFueSBzYWZldHkgcmFp bGluZ3Mgd2UgcHV0IHVwLCB3ZSBzaG91bGRuJ3QgbWFrZSB0aGluZ3MKdW5uZWNlc3NhcmlseSBo YXJkIG9uIG90aGVyIHRyeWluZyB0byBHZXQgV29yayBEb25lLgoKU2VhbgoKW0Rpc2NsYWltZXI6 IEknbSB0b3RhbGx5IGFuZCBjb21wbGV0ZWx5IGJpYXNlZCBvbiB0aGlzIGlzc3VlXQoKCj4gCj4g VGhhbmtzCj4gRW1pbAoKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAv IENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=