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 2327AC46471 for ; Tue, 7 Aug 2018 11:01:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B9D7221757 for ; Tue, 7 Aug 2018 11:01:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cTILfX72" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B9D7221757 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 S1732511AbeHGNPk (ORCPT ); Tue, 7 Aug 2018 09:15:40 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:52139 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726419AbeHGNPj (ORCPT ); Tue, 7 Aug 2018 09:15:39 -0400 Received: by mail-wm0-f68.google.com with SMTP id y2-v6so16980525wma.1 for ; Tue, 07 Aug 2018 04:01:52 -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=JfFDy50f8k+rF9zVUA29SlVOmGYP2ZMLDAJ5Z5F3E/A=; b=cTILfX72N0JH+JxTDN3V3MWYa9mYF5ieWt+LtvQJeF0yLHRULWOVq1T8kjeTT8Q6oq okJAJWBAySP+U+gTRHPKOnLg9HiFJVYeq1dVC0KnrGNBB72/3QXQ4Q3zuaNySd2THKtm +xfLCs2dtQbhCo84qD3yzOxdoX5iTx1MqanIXb/T5Jap/PcAdHzR4yRQMoEr1uQbuYL/ phNqvckDwFlJZPg+hiBC9C+JV1SaQ4Xj6vzsm4Vglfk2Y5lzwHrJpN/KWfzD5Uo64QEG Kp6pxYlGjJ0Gh20jq3VtXQ0Om3creKjViLfTgV9ogYLAmPGld+DDuPXtm+N1tEqubR0q bYqw== 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=JfFDy50f8k+rF9zVUA29SlVOmGYP2ZMLDAJ5Z5F3E/A=; b=HIDC7BHQ6tT53VmAXme0uKL/HzPe98hlXe0tN4VZ2PU+eDENYa6uR7tM5/IEONAfLi pkOAGtD++UJdsWuUNYDBF2cFdJYw3qIhuGe+p8Bmddklb8zPaWDmCw/k7ZS+aibO7XUh UQPqpdcv6zLOT1zmZTJqHs0UqN1G5iT7q3yPtnpMhzb0QUQu9FS6Y/7ASB1C5En3QWhy fxMA+xhVVLmEo6Y4NK4Ybm/041i3nfHksMTKuP3BrliPBfSBPI56RPgtNkQ2NUBX0B0g 3Yjg61zB4G1b74novoYMfbVseuPhVwGOp5Vx5RaKMzwFHsZEOnL/OYCNDsmNr0hReknW R44A== X-Gm-Message-State: AOUpUlGqatJytqsonn2P6LUfRuBBkCbcSyMyPoTLMSg8hB5WS2Z57opO 0pvr8eoqJ9dX22JVO3eHXdemzacmyFfjM41wzBs= X-Google-Smtp-Source: AA+uWPx3qlW56S+tUPeUiSg8X5ks6ztg/UROKvbQXSEoviScNDx+7oOwqGBCVZoWFNG/DIg45+nbzg4QXfOBkDpCSQ0= X-Received: by 2002:a1c:e595:: with SMTP id c143-v6mr1396927wmh.85.1533639711543; Tue, 07 Aug 2018 04:01:51 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1c:178a:0:0:0:0:0 with HTTP; Tue, 7 Aug 2018 04:01:50 -0700 (PDT) In-Reply-To: <20180803195025.GO20303@art_vandelay> References: <20180724082213.25677-1-robert.foss@collabora.com> <20180803195025.GO20303@art_vandelay> From: Emil Velikov Date: Tue, 7 Aug 2018 12:01:50 +0100 Message-ID: Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes To: Sean Paul 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 , 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 20:50, Sean Paul wrote: > 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. > Now that we got the diversion out of the way, any input on my proposal to drop the DRM_AUTH for fd <> imports. Am I missing something pretty obvious that makes the idea a no-go? 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: Tue, 7 Aug 2018 12:01:50 +0100 Message-ID: References: <20180724082213.25677-1-robert.foss@collabora.com> <20180803195025.GO20303@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id D88416E36A for ; Tue, 7 Aug 2018 11:01:52 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id f21-v6so16949461wmc.5 for ; Tue, 07 Aug 2018 04:01:52 -0700 (PDT) In-Reply-To: <20180803195025.GO20303@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul 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 T24gMyBBdWd1c3QgMjAxOCBhdCAyMDo1MCwgU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5v cmc+IHdyb3RlOgo+IE9uIEZyaSwgQXVnIDAzLCAyMDE4IGF0IDA2OjAzOjUwUE0gKzAxMDAsIEVt aWwgVmVsaWtvdiB3cm90ZToKPj4gT24gMyBBdWd1c3QgMjAxOCBhdCAxNjowNiwgTWFydGluIEZ1 enpleSA8bWFydGluLmZ1enpleUBmbG93YmlyZC5ncm91cD4gd3JvdGU6Cj4+ID4gSGkgRW1pbCwK Pj4gPgo+PiA+IE9uIDAzLzA4LzE4IDE0OjM1LCBFbWlsIFZlbGlrb3Ygd3JvdGU6Cj4+ID4+Cj4+ ID4+IEhpIE1hcnRpbiwKPj4gPj4KPj4gPj4gT24gMSBBdWd1c3QgMjAxOCBhdCAxNToyNCwgTWFy dGluIEZ1enpleSA8bWFydGluLmZ1enpleUBmbG93YmlyZC5ncm91cD4KPj4gPj4gd3JvdGU6Cj4+ ID4+Cj4+ID4+IExldCdzIHN0YXJ0IHdpdGggdGhlIG5vdC1zbyBvYnZpb3VzIHF1ZXN0aW9uOgo+ PiA+PiBXaHkgZG9lcyBvbmUgb3BlbiB0aGUgaW14IGFzIHJlbmRlciBub2RlPwo+PiA+Pgo+PiA+ PiBPZiB0aGUgdG9wIG9mIG15IGhlYWQ6Cj4+ID4+IFRoZXJlIGlzIG5vdGhpbmcgaW4gZWdsL2Fu ZHJvaWQgdGhhdCBzaG91bGQgcmVxdWlyZSBhbiBhdXRoZW50aWNhdGVkCj4+ID4+IGRldmljZS4K Pj4gPj4gSGVuY2UsIHVzaW5nIGEgY2FyZCBub2RlIHNob3VsZCBiZSBmaW5lIC0gdGhlIGV0bmF2 aXYgY29kZSBvcGVucyB0aGUKPj4gPj4gcmVuZGVyIG5vZGUgaXQgbmVlZHMuCj4+ID4KPj4gPgo+ PiA+IFllcywgdGhlIHByb2JsZW0gaXMgbm90IGluIGVnbC9hbmRyb2lkIGJ1dCBpbiB0aGUgc2Nh bm91dCBidWZmZXIgYWxsb2NhdGlvbgo+PiA+IGNvZGUuCj4+ID4KPj4gPiBldG5hdml2IG9wZW5z IHRoZSByZW5kZXIgbm9kZSBvbiB0aGUgKkdQVSogKGZvciBzdWJtaXR0aW5nIEdQVSBjb21tYW5k cyksCj4+ID4gdGhhdCBwYXJ0IGlzIGZpbmUuCj4+ID4KPj4gPiBCdXQgc2Nhbm91dCBidWZmZXJz IG5lZWQgdG8gYmUgYWxsb2NhdGVkIGZyb20gaW14LWRybSBub3QgZXRuYXZpdi4KPj4gPgo+PiA+ IFRoaXMgZG9uZSBieSByZW5kZXJvbmx5X2NyZWF0ZV9rbXNfZHVtYl9idWZmZXJfZm9yX3Jlc291 cmNlKCkKPj4gPiBbc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3JlbmRlcm9ubHkvcmVuZGVyb25seS5j XQo+PiA+IFdoaWNoIHVzZXMgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIgZm9sbG93ZWQgYnkK Pj4gPiBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExFCj4+ID4gb24gdGhlICJrbXNfZmQiIChw cm9iYWJseSBwb29ybHkgbmFtZWQgYmVjYXVzZSBpdCdzIG5vdCBhY3R1YWxseSB1c2VkIGZvcgo+ PiA+IG1vZGVzZXR0aW5nKQo+PiA+IHNlZSBpbXhfZHJtX3NjcmVlbl9jcmVhdGUoKVsgc3JjL2dh bGxpdW0vd2luc3lzL2lteC9kcm0vaW14X2RybV93aW5zeXMuY10KPj4gPgo+PiA+Cj4+ID4gSWYg dGhlIGNhcmQgbm9kZSBpcyB1c2VkIERSTV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CIHdvcmtzIGJ1 dAo+PiA+IERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUgZmFpbHMsIGJlY2F1c2UgdGhlIHBl cm1pc3Npb25zIGFyZQo+PiA+IERSTV9BVVRIfERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9X Cj4+ID4KPj4gUmlnaHQgSSBtaXNzZWQgdGhlIERSTV9BVVRILCBpbiB0aGUgZmQgPD4gaGFuZGxl IElPQ1RMcy4KPj4gU28gaW4gb3JkZXIgZm9yIHRoaW5ncyB0byB3b3JrLCB3ZSdkIG5lZWQgdG8g ZWl0aGVyOgo+PiAgLSBhbGxvdyBkdW1iIGJ1ZmZlcnMgZm9yIHJlbmRlciBub2Rlcywgb3IKPj4g IC0gZHJvcCB0aGUgRFJNX0FVVEggZm9yIGZkIDw+IGhhbmRsZSBpbXBvcnRzCj4+Cj4+IFBvaW50 aW5nIGFuIGFsdGVybmF0aXZlIHNvbHV0aW9uLCBmb3Iga2VybmVsIGRldmVsb3BlcnMgdG8gYW5h bHlzZSBhbmQKPj4gbWFrZSBhIGRlY2lzaW9uLgo+Pgo+PiA+Cj4+ID4gSW4gYW5kcm9pZCA4LjEg dGhlIGhhcmR3YXJlIGNvbXBvc2VyIHJ1bnMgaW4gYSBzZXBlcmF0ZSBwcm9jZXNzIGFuZCBpdCBo YXMKPj4gPiB0byB1c2UgdGhlIGNhcmQgbm9kZSBhbmQgYmUgZHJtIG1hc3RlciAodG8gdXNlIHRo ZSBLTVMgQVBJKSwKPj4gPiB0aGVyZWZvcmUsIHdoZW4gdGhlIHN1cmZhY2UgZmxpbmdlciBjYWxs cwo+PiA+IHJlbmRlcm9ubHlfY3JlYXRlX2ttc19kdW1iX2J1ZmZlcl9mb3JfcmVzb3VyY2UoKSBp dCBpcyBub3QgYXV0aGVudGljYXRlZC4KPj4gPgo+PiA+IE1ha2luZyBzdXJmYWNlIGZsaW5nZXIg dXNlIGEgcmVuZGVyIG5vZGUgZml4ZXMgdGhlIHByb2JsZW0gZm9yCj4+ID4gRFJNX0lPQ1RMX1BS SU1FX0ZEX1RPX0hBTkRMRSAoYmVjYXVzZSB0aGF0IGFscmVhZHkgaGFzIERSTV9SRU5ERVJfQUxM T1cpLAo+PiA+IGJ1dCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiBub3cgZmFpbHMgd2l0aG91 dCB0aGUgcGF0Y2guCj4+ID4KPj4gPgo+PiA+IFRoaXMgcHJvYmFibHkgd29ya2VkIGluIHByZXZp b3VzIHZlcnNpb25zIG9mIEFuZHJvaWQgd2hlcmUgc3VyZmFjZSBmbGluZ2VyCj4+ID4gYW5kIGh3 YyB3ZXJlIGFsbCBpbiB0aGUgc2FtZSBwcm9jZXNzLgo+PiA+Cj4+IFRoZXJlIGhhcyBiZWVuIHZh cnlpbmcgaGFja3MgZm9yIEFuZHJvaWQgdGhyb3VnaCB0aGUgeWVhcnMuIEJyaW5naW5nCj4+IGRl dGFpbHMgaW50byB0aGUgZGlzY3Vzc2lvbiB3aWxsIHJlc3VsdCBpbiBhIHNpZ25pZmljYW50IGRp dmVyc2lvbi4KPj4gU29tZXRoaW5nIHdlIGNvdWxkIGF2b2lkLCBmb3IgdGhlIHRpbWUgYmVpbmcg Oy0pCj4KPiBEaWQgc29tZW9uZSBzYXkgZGl2ZXJzaW9uPyE/IFRoZSB3YXkgdGhpcyB3YXMgaGFu ZGxlZCBwcmlvciB0byB1c2luZwo+IHJlbmRlci9jb250cm9sIG5vZGVzIGluIGRybV9od2MvW2Ry bS9nYm1dX2dyYWxsb2MgaXMgdGhhdCBhbGwgbW9kZXNldHRpbmcgd2FzCj4gZG9uZSB2aWEgZ3Jh bGxvYyB3aGljaCB3YXMgbWFzdGVyLiBUaGUgaHdjIGltcGxlbWVudGF0aW9uIHdhcyBiYXNpY2Fs bHkgYSBwcm94eQo+IGJhY2tjaGFubmVsaW5nIGFsbCBvZiB0aGUgd29yayB0byBncmFsbG9jLgo+ Cj4gQW55d2F5cywgd2UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBnbyBiYWNrIHRoZXJlLgo+Ck5v dyB0aGF0IHdlIGdvdCB0aGUgZGl2ZXJzaW9uIG91dCBvZiB0aGUgd2F5LCBhbnkgaW5wdXQgb24g bXkgcHJvcG9zYWwKdG8gZHJvcCB0aGUgRFJNX0FVVEggZm9yIGZkIDw+IGltcG9ydHMuCkFtIEkg bWlzc2luZyBzb21ldGhpbmcgcHJldHR5IG9idmlvdXMgdGhhdCBtYWtlcyB0aGUgaWRlYSBhIG5v LWdvPwoKVGhhbmtzCkVtaWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==