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,MAILING_LIST_MULTI,SPF_PASS,T_DKIMWL_WL_HIGH 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 0DA91C4646D for ; Mon, 6 Aug 2018 19:05:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A949421A29 for ; Mon, 6 Aug 2018 19:05:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="skapDPhE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A949421A29 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.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 S1732808AbeHFVPq (ORCPT ); Mon, 6 Aug 2018 17:15:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:54900 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732394AbeHFVPq (ORCPT ); Mon, 6 Aug 2018 17:15:46 -0400 Received: from mail-qk0-f169.google.com (mail-qk0-f169.google.com [209.85.220.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9A1E121A5D for ; Mon, 6 Aug 2018 19:05:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1533582317; bh=LSYwrDwf6K3+2HGSQ0Dc9tOBuAAWJEy4A5ViN/os+eQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=skapDPhEZxWKBykIGIgpjKZhFcQW0SYDtFZWUPSGAFgl+0bF3/0ZQeGrw7mdi9Lt4 O2y1M9Ze18OufdOau3atswlz2omDRQmhqWioSuhoI1+D+7HYf0WGUivn1aexACs5MZ YQc9gD7x/kHFybUFXmUFpqPhT7m4DpiB1SIV1MsM= Received: by mail-qk0-f169.google.com with SMTP id z74-v6so9692236qkb.10 for ; Mon, 06 Aug 2018 12:05:17 -0700 (PDT) X-Gm-Message-State: AOUpUlEYUO9JQ8Zshak/6ut7QU2bfB/vE9lWM3w58xC/b6T8SW1IN7ic ilF+MPtlLZEGh8ifK3SZdtPxC9ll0Jr7MaCvQQ== X-Google-Smtp-Source: AAOMgpd+PQF3ROX7Yjs1jy69NqIgmULRqxfBE29DmRhn0qnG8R6lNmd2MCrOM3W2ctA5cdQo21i3yIQn2B9Tua3lMOA= X-Received: by 2002:a37:ab14:: with SMTP id u20-v6mr14303409qke.120.1533582316717; Mon, 06 Aug 2018 12:05:16 -0700 (PDT) MIME-Version: 1.0 References: <20180724082213.25677-1-robert.foss@collabora.com> <20180803195025.GO20303@art_vandelay> In-Reply-To: <20180803195025.GO20303@art_vandelay> From: Rob Herring Date: Mon, 6 Aug 2018 13:05:05 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes To: Sean Paul Cc: Emil Velikov , martin.fuzzey@flowbird.group, Robert Foss , David Airlie , Brian Paul , dri-devel , eric.engestrom@intel.com, Gustavo Padovan , "linux-kernel@vger.kernel.org" , Maarten Lankhorst , norvez@chromium.org, 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 Fri, Aug 3, 2018 at 1:50 PM 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. > > 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. The problem with using render nodes is what if there isn't one? We require VGEM (and make VGEM allow dumb buffers) in that case? Rob From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [RFC] drm: Allow DRM_IOCTL_MODE_MAP_DUMB for render nodes Date: Mon, 6 Aug 2018 13:05:05 -0600 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.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 308186E314 for ; Mon, 6 Aug 2018 19:05:18 +0000 (UTC) Received: from mail-qk0-f179.google.com (mail-qk0-f179.google.com [209.85.220.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id ACF8D21A68 for ; Mon, 6 Aug 2018 19:05:17 +0000 (UTC) Received: by mail-qk0-f179.google.com with SMTP id u21-v6so9731143qku.2 for ; Mon, 06 Aug 2018 12:05:17 -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 , norvez@chromium.org, Robert Foss , Emil Velikov , "linux-kernel@vger.kernel.org" , dri-devel , Tomasz Figa , eric.engestrom@intel.com, David Airlie , Brian Paul , martin.fuzzey@flowbird.group List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBdWcgMywgMjAxOCBhdCAxOjUwIFBNIFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21p dW0ub3JnPiB3cm90ZToKPgo+IE9uIEZyaSwgQXVnIDAzLCAyMDE4IGF0IDA2OjAzOjUwUE0gKzAx MDAsIEVtaWwgVmVsaWtvdiB3cm90ZToKPiA+IE9uIDMgQXVndXN0IDIwMTggYXQgMTY6MDYsIE1h cnRpbiBGdXp6ZXkgPG1hcnRpbi5mdXp6ZXlAZmxvd2JpcmQuZ3JvdXA+IHdyb3RlOgo+ID4gPiBI aSBFbWlsLAo+ID4gPgo+ID4gPiBPbiAwMy8wOC8xOCAxNDozNSwgRW1pbCBWZWxpa292IHdyb3Rl Ogo+ID4gPj4KPiA+ID4+IEhpIE1hcnRpbiwKPiA+ID4+Cj4gPiA+PiBPbiAxIEF1Z3VzdCAyMDE4 IGF0IDE1OjI0LCBNYXJ0aW4gRnV6emV5IDxtYXJ0aW4uZnV6emV5QGZsb3diaXJkLmdyb3VwPgo+ ID4gPj4gd3JvdGU6Cj4gPiA+Pgo+ID4gPj4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgbm90LXNvIG9i dmlvdXMgcXVlc3Rpb246Cj4gPiA+PiBXaHkgZG9lcyBvbmUgb3BlbiB0aGUgaW14IGFzIHJlbmRl ciBub2RlPwo+ID4gPj4KPiA+ID4+IE9mIHRoZSB0b3Agb2YgbXkgaGVhZDoKPiA+ID4+IFRoZXJl IGlzIG5vdGhpbmcgaW4gZWdsL2FuZHJvaWQgdGhhdCBzaG91bGQgcmVxdWlyZSBhbiBhdXRoZW50 aWNhdGVkCj4gPiA+PiBkZXZpY2UuCj4gPiA+PiBIZW5jZSwgdXNpbmcgYSBjYXJkIG5vZGUgc2hv dWxkIGJlIGZpbmUgLSB0aGUgZXRuYXZpdiBjb2RlIG9wZW5zIHRoZQo+ID4gPj4gcmVuZGVyIG5v ZGUgaXQgbmVlZHMuCj4gPiA+Cj4gPiA+Cj4gPiA+IFllcywgdGhlIHByb2JsZW0gaXMgbm90IGlu IGVnbC9hbmRyb2lkIGJ1dCBpbiB0aGUgc2Nhbm91dCBidWZmZXIgYWxsb2NhdGlvbgo+ID4gPiBj b2RlLgo+ID4gPgo+ID4gPiBldG5hdml2IG9wZW5zIHRoZSByZW5kZXIgbm9kZSBvbiB0aGUgKkdQ VSogKGZvciBzdWJtaXR0aW5nIEdQVSBjb21tYW5kcyksCj4gPiA+IHRoYXQgcGFydCBpcyBmaW5l Lgo+ID4gPgo+ID4gPiBCdXQgc2Nhbm91dCBidWZmZXJzIG5lZWQgdG8gYmUgYWxsb2NhdGVkIGZy b20gaW14LWRybSBub3QgZXRuYXZpdi4KPiA+ID4KPiA+ID4gVGhpcyBkb25lIGJ5IHJlbmRlcm9u bHlfY3JlYXRlX2ttc19kdW1iX2J1ZmZlcl9mb3JfcmVzb3VyY2UoKQo+ID4gPiBbc3JjL2dhbGxp dW0vYXV4aWxpYXJ5L3JlbmRlcm9ubHkvcmVuZGVyb25seS5jXQo+ID4gPiBXaGljaCB1c2VzIERS TV9JT0NUTF9NT0RFX0NSRUFURV9EVU1CIGZvbGxvd2VkIGJ5Cj4gPiA+IERSTV9JT0NUTF9QUklN RV9GRF9UT19IQU5ETEUKPiA+ID4gb24gdGhlICJrbXNfZmQiIChwcm9iYWJseSBwb29ybHkgbmFt ZWQgYmVjYXVzZSBpdCdzIG5vdCBhY3R1YWxseSB1c2VkIGZvcgo+ID4gPiBtb2Rlc2V0dGluZykK PiA+ID4gc2VlIGlteF9kcm1fc2NyZWVuX2NyZWF0ZSgpWyBzcmMvZ2FsbGl1bS93aW5zeXMvaW14 L2RybS9pbXhfZHJtX3dpbnN5cy5jXQo+ID4gPgo+ID4gPgo+ID4gPiBJZiB0aGUgY2FyZCBub2Rl IGlzIHVzZWQgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIgd29ya3MgYnV0Cj4gPiA+IERSTV9J T0NUTF9QUklNRV9GRF9UT19IQU5ETEUgZmFpbHMsIGJlY2F1c2UgdGhlIHBlcm1pc3Npb25zIGFy ZQo+ID4gPiBEUk1fQVVUSHxEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVwo+ID4gPgo+ID4g UmlnaHQgSSBtaXNzZWQgdGhlIERSTV9BVVRILCBpbiB0aGUgZmQgPD4gaGFuZGxlIElPQ1RMcy4K PiA+IFNvIGluIG9yZGVyIGZvciB0aGluZ3MgdG8gd29yaywgd2UnZCBuZWVkIHRvIGVpdGhlcjoK PiA+ICAtIGFsbG93IGR1bWIgYnVmZmVycyBmb3IgcmVuZGVyIG5vZGVzLCBvcgo+ID4gIC0gZHJv cCB0aGUgRFJNX0FVVEggZm9yIGZkIDw+IGhhbmRsZSBpbXBvcnRzCj4gPgo+ID4gUG9pbnRpbmcg YW4gYWx0ZXJuYXRpdmUgc29sdXRpb24sIGZvciBrZXJuZWwgZGV2ZWxvcGVycyB0byBhbmFseXNl IGFuZAo+ID4gbWFrZSBhIGRlY2lzaW9uLgo+ID4KPiA+ID4KPiA+ID4gSW4gYW5kcm9pZCA4LjEg dGhlIGhhcmR3YXJlIGNvbXBvc2VyIHJ1bnMgaW4gYSBzZXBlcmF0ZSBwcm9jZXNzIGFuZCBpdCBo YXMKPiA+ID4gdG8gdXNlIHRoZSBjYXJkIG5vZGUgYW5kIGJlIGRybSBtYXN0ZXIgKHRvIHVzZSB0 aGUgS01TIEFQSSksCj4gPiA+IHRoZXJlZm9yZSwgd2hlbiB0aGUgc3VyZmFjZSBmbGluZ2VyIGNh bGxzCj4gPiA+IHJlbmRlcm9ubHlfY3JlYXRlX2ttc19kdW1iX2J1ZmZlcl9mb3JfcmVzb3VyY2Uo KSBpdCBpcyBub3QgYXV0aGVudGljYXRlZC4KPiA+ID4KPiA+ID4gTWFraW5nIHN1cmZhY2UgZmxp bmdlciB1c2UgYSByZW5kZXIgbm9kZSBmaXhlcyB0aGUgcHJvYmxlbSBmb3IKPiA+ID4gRFJNX0lP Q1RMX1BSSU1FX0ZEX1RPX0hBTkRMRSAoYmVjYXVzZSB0aGF0IGFscmVhZHkgaGFzIERSTV9SRU5E RVJfQUxMT1cpLAo+ID4gPiBidXQgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIgbm93IGZhaWxz IHdpdGhvdXQgdGhlIHBhdGNoLgo+ID4gPgo+ID4gPgo+ID4gPiBUaGlzIHByb2JhYmx5IHdvcmtl ZCBpbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiBBbmRyb2lkIHdoZXJlIHN1cmZhY2UgZmxpbmdlcgo+ ID4gPiBhbmQgaHdjIHdlcmUgYWxsIGluIHRoZSBzYW1lIHByb2Nlc3MuCj4gPiA+Cj4gPiBUaGVy ZSBoYXMgYmVlbiB2YXJ5aW5nIGhhY2tzIGZvciBBbmRyb2lkIHRocm91Z2ggdGhlIHllYXJzLiBC cmluZ2luZwo+ID4gZGV0YWlscyBpbnRvIHRoZSBkaXNjdXNzaW9uIHdpbGwgcmVzdWx0IGluIGEg c2lnbmlmaWNhbnQgZGl2ZXJzaW9uLgo+ID4gU29tZXRoaW5nIHdlIGNvdWxkIGF2b2lkLCBmb3Ig dGhlIHRpbWUgYmVpbmcgOy0pCj4KPiBEaWQgc29tZW9uZSBzYXkgZGl2ZXJzaW9uPyE/IFRoZSB3 YXkgdGhpcyB3YXMgaGFuZGxlZCBwcmlvciB0byB1c2luZwo+IHJlbmRlci9jb250cm9sIG5vZGVz IGluIGRybV9od2MvW2RybS9nYm1dX2dyYWxsb2MgaXMgdGhhdCBhbGwgbW9kZXNldHRpbmcgd2Fz Cj4gZG9uZSB2aWEgZ3JhbGxvYyB3aGljaCB3YXMgbWFzdGVyLiBUaGUgaHdjIGltcGxlbWVudGF0 aW9uIHdhcyBiYXNpY2FsbHkgYSBwcm94eQo+IGJhY2tjaGFubmVsaW5nIGFsbCBvZiB0aGUgd29y ayB0byBncmFsbG9jLgo+Cj4gQW55d2F5cywgd2UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBnbyBi YWNrIHRoZXJlLgo+Cj4gRndpdywgSSdkIGxlYW4gdG93YXJkcyBhbGxvd2luZyBEVU1CIGFsbG9j YXRpb24gZnJvbSB0aGUgcmVuZGVyIG5vZGVzLiBJCj4gdW5kZXJzdGFuZCBpdCBsaW1pdHMgdXNl IGNhc2VzIHRoYXQgYXJlIHVuZGVzaXJhYmxlLCBidXQgaXQgaXMgYWxzbyBsaW1pdGluZwo+IHVz ZWNhc2VzIHRoYXQgYXJlIGRlc2lyYWJsZS4gU28sIGdpdmVuIHRoYXQgcGVvcGxlIGFyZSBnb2lu ZyB0byBnZXQgImNyZWF0aXZlIgo+IHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkgc2FmZXR5IHJhaWxp bmdzIHdlIHB1dCB1cCwgd2Ugc2hvdWxkbid0IG1ha2UgdGhpbmdzCj4gdW5uZWNlc3NhcmlseSBo YXJkIG9uIG90aGVyIHRyeWluZyB0byBHZXQgV29yayBEb25lLgoKVGhlIHByb2JsZW0gd2l0aCB1 c2luZyByZW5kZXIgbm9kZXMgaXMgd2hhdCBpZiB0aGVyZSBpc24ndCBvbmU/IFdlCnJlcXVpcmUg VkdFTSAoYW5kIG1ha2UgVkdFTSBhbGxvdyBkdW1iIGJ1ZmZlcnMpIGluIHRoYXQgY2FzZT8KClJv YgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK