From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tiago Vignatti Subject: Re: [PATCH] staging/android: Update ION TODO per LPC discussion Date: Fri, 21 Aug 2015 18:10:44 -0300 Message-ID: <55D793D4.4050500@intel.com> References: <1440190977-10050-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 824ED6E6B3 for ; Fri, 21 Aug 2015 14:10:48 -0700 (PDT) In-Reply-To: <1440190977-10050-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , LKML Cc: Greg KH , DRI Development , Daniel Vetter , laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org c2d0bS4gVGhhbmtzIGZvciBrZWVwaW5nIG1lIGluIHRoZSBsb29wLgoKVGlhZ28KCk9uIDA4LzIx LzIwMTUgMDY6MDIgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gV2UgZGlzY3Vzc2VkIGEgYml0 IHdpdGggdGhlIGZvbGtzIG9uIHRoZSBDYzogbGlzdCBiZWxvdyB3aGF0IHRvIGRvCj4gd2l0aCBJ T04uIFR3byBiaWcgdGFrZS1hd2F5czoKPgo+IC0gSGlnaC1wZXJmb3JtYW5jZSBkcml2ZXJzIChs aWtlIGdwdXMpIGFsd2F5cyB3YW50IHRvIHBsYXkgdHJpY2tzIHdpdGgKPiAgICBjb2hlcmVuY3kg YW5kIHdpbGwgbGllIHRvIHRoZSBkbWEgYXBpIChyYWRlb24sIG5vdXZlYXUsIGk5MTUgZ3B1Cj4g ICAgZHJpdmVycyBhbGwgZG8gc28gaW4gdXBzdHJlYW0pLiBXaGF0IG5lZWRzIHRvIGJlIGRvbmUg aGVyZSBpcyBmaWxsCj4gICAgZ2FwcyBpbiBkbWEtYnVmIHNvIHRoYXQgd2UgY2FuIGRvIHRoaXMg d2l0aG91dCBicmVha2luZyB0aGUgZG1hLWFwaQo+ICAgIGV4cGVjdGlvbnMgb2Ygb3RoZXIgY2xp ZW50cyBsaWtlIHY0bC4gVGhlIGNvbnNlc3VzIGlzIHRoYXQgaHcgd29uJ3QKPiAgICBzdG9wIG5l ZWRpbmcgdGhlc2UgdHJpY2tzIGFueXRpbWUgc29vbi4KPgo+IC0gUGxhY2VtZW50IGNvbnN0cmFp bnRzIGZvciBzaGFyZWQgYnVmZmVycyB3b24ndCBiZSBzb2x2ZWQgYW55IG90aGVyCj4gICAgd2F5 IHRoYW4gdGhyb3VnaCBzb21ldGhpbmcgcGxhdGZvcm0tc3BlY2lmaWMgbGlrZSBpb24gd2l0aAo+ ICAgIHBsYXRmb3JtLXNwZWNpZmljIGtub3dsZWRnZSBpbiB1c2Vyc3BhY2UgaW4gc29tZXRoaW5n IGxpa2UgZ3JhbGxvYy4KPiAgICBGb3IgZ2VuZXJhbC1wdXJwb3NlIGRldmljZXMgd2hlcmUgdGhp cyBhc3N1bXB0aW9uIHdvdWxkIGJlIHBhaW5mdWwKPiAgICBmb3IgdXNlcnNwYWNlIChsaWtlIHNl cnZlcnMpIHRoZSBjb25zZW5zdXMgaXMgdGhhdCBzdWNoIGRldmljZXMgd2lsbAo+ICAgIGhhdmUg cHJvcGVyIE1NVXMgd2hlcmUgcGxhY2VtZW50IGNvbnN0cmFpbnQgaGFuZGxpbmcgaXMgZmFpcmx5 Cj4gICAgaXJyZWxldmFudC4KPgo+IEhlbmNlIGl0IGlzIHJlYXNvbmFibGUgdG8gZGVzdGFnZSBp b24gYXMtaXMgd2l0aG91dCBjaGFuZ2luZyB0aGUKPiBvdmVyYWxsIGRlc2lnbiB0byBlbmFibGUg dGhlc2UgdXNlLWNhc2VzIGFuZCBqdXN0IGZpeGluZyB1cCBhIHRoZXNlCj4gZmV3IGZhaXJseSBt aW5vciB0aGluZ3MuIFNpbmNlIHRoZXJlIHdvbid0IHJlbGx5IGJlIGFuIG9wZW4tc291cmNlCj4g dXNlcnNwYWNlIGZvciBpb24gKGFuZCBoZW5jZSBkcm0gbWFpbnRhaW5lcnMgd29uJ3QgdGFrZSBp dCkgdGhlCj4gcHJvcG9zYWwgaXMgdG8gZXZlbnR1YWxseSBtb3ZlIGl0IHRvIGRyaXZlcnMvYW5k cm9pZC9pb24uW2hjXS4gTGF1cmEKPiB3b3VsZCBiZSBvayB3aXRoIGJlaW5nIG1haW50YWluZXIg b25jZSB0aGlzIGlzIGFsbCBkb25lIGFuZCBpb24gaXMKPiBkZXN0YWdlZC4KPgo+IE5vdGUgdGhh dCBUaGlhZ28gaXMgd29ya2luZyBvbiBleHBvc2luZyB0aGUgY3B1IGNhY2hlIGZsdXNoaW5nIGZv cgo+IGNwdSBhY2Nlc3MgZnJvbSB1c2Vyc3BhY2UgdGhyb3VnaCBtbWFwcyBzbyB0aGlzIGlzIGFs cmVhZCBpbiBwcm9ncmVzcy4KPiBBbHNvIGFkZGluZyBoaW0gdG8gdGhlIENjOiBsaXN0Lgo+Cj4g djI6IEFkZCBJT05fSU9DX0lNUE9SVCB0byB0aGUgbGlzdCBvZiBpb2N0bCB0aGF0IHByb2JhYmx5 IHNob3VsZCBnby4KPgo+IENjOiBMYXVyYSBBYmJvdHQgPGxhYmJvdHRAcmVkaGF0LmNvbT4KPiBD Yzogc3VtaXQuc2Vtd2FsQGxpbmFyby5vcmcKPiBDYzogbGF1cmVudC5waW5jaGFydEBpZGVhc29u Ym9hcmQuY29tCj4gQ2M6IGdoYWNrbWFubkBnb29nbGUuY29tCj4gQ2M6IHJvYmRjbGFya0BnbWFp bC5jb20KPiBDYzogZGF2aWQuYnJvd25AYXJtLmNvbQo+IENjOiByb21sZW1AZ29vZ2xlLmNvbQo+ IENjOiBUaWFnbyBWaWduYXR0aSA8dGlhZ28udmlnbmF0dGlAaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvVE9ETyB8IDIwICsrKysrKysrKysrKysrKysrKysrCj4g ICAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy9hbmRyb2lkL1RPRE8gYi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9UT0RPCj4g aW5kZXggMDY5NTRjZGYzZGJhLi5iYzg0YTcyYWYzMmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9z dGFnaW5nL2FuZHJvaWQvVE9ETwo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL1RPRE8K PiBAQCAtMTMsNSArMTMsMjUgQEAgVE9ETzoKPiAgIAktIFRoaXMgYnVnIGlzIGludHJvZHVjZWQg YnkgWGlvbmcgWmhvdSBpbiB0aGUgcGF0Y2ggYmQ0NzEyNThmMmUwOQo+ICAgCS0gKCJzdGFnaW5n OiBhbmRyb2lkOiBsb2dnZXI6IHVzZSBrdWlkX3QgaW5zdGVhZCBvZiB1aWRfdCIpCj4KPiArCj4g K2lvbi8KPiArIC0gUmVtb3ZlIElPTl9JT0NfU1lOQzogRmx1c2hpbmcgZm9yIGRldmljZXMgc2hv dWxkIGJlIHB1cmVseSBhIGtlcm5lbCBpbnRlcm5hbAo+ICsgICBpbnRlcmZhY2Ugb24gdG9wIG9m IGRtYS1idWYuIGZsdXNoX2Zvcl9kZXZpY2UgbmVlZHMgdG8gYmUgYWRkZWQgdG8gZG1hLWJ1Zgo+ ICsgICBmaXJzdC4KPiArIC0gUmVtb3ZlIElPTl9JT0NfQ1VTVE9NOiBBdG0gdXNlZCBmb3IgY2Fj aGUgZmx1c2hpbmcgZm9yIGNwdSBhY2Nlc3MgaW4gc29tZQo+ICsgICB2ZW5kb3IgdHJlZXMuIFNo b3VsZCBiZSByZXBsYWNlZCB3aXRoIGFuIGlvY3RsIG9uIHRoZSBkbWEtYnVmIHRvIGV4cG9zZSB0 aGUKPiArICAgYmVnaW4vZW5kX2NwdV9hY2Nlc3MgaG9va3MgdG8gdXNlcnNwYWNlLgo+ICsgLSBD bGFyaWZ5IHRoZSB0cmlja3MgaW9uIHBsYXlzIHdpdGggZXhwbGljaXRseSBtYW5hZ2luZyBjb2hl cmVuY3kgYmVoaW5kIHRoZQo+ICsgICBkbWEgYXBpJ3MgYmFjayAodGhpcyBpcyBhYnNvbHV0ZWx5 IG5lZWRlZCBmb3IgaGlnaC1wZXJmIGdwdSBkcml2ZXJzKTogQWRkIGFuCj4gKyAgIGV4cGxpY2l0 IGNvaGVyZW5jeSBtYW5hZ2VtZW50IG1vZGUgdG8gZmx1c2hfZm9yX2RldmljZSB0byBiZSB1c2Vk IGJ5IGRyaXZlcnMKPiArICAgd2hpY2ggd2FudCB0byBtYW5hZ2UgY2FjaGVzIHRoZW1zZWx2ZXMg YW5kIHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIGNwdSBjYWNoZXMKPiArICAgbmVlZCBmbHVzaGlu Zy4KPiArIC0gV2l0aCB0aG9zZSByZW1vdmVkIHRoZXJlJ3MgcHJvYmFibHkgbm8gdXNlIGZvciBJ T05fSU9DX0lNUE9SVCBhbnltb3JlIGVpdGhlcgo+ICsgICBzaW5jZSBpb24gd291bGQganVzdCBi ZSB0aGUgY2VudHJhbCBhbGxvY2F0b3IgZm9yIHNoYXJlZCBidWZmZXJzLgo+ICsgLSBBZGQgZHQt YmluZGluZyB0byBleHBvc2UgY21hIHJlZ2lvbnMgYXMgaW9uIGhlYXBzLCB3aXRoIHRoZSBydWxl IHRoYXQgYW55Cj4gKyAgIHN1Y2ggY21hIHJlZ2lvbnMgbXVzdCBhbHJlYWR5IGJlIHVzZWQgYnkg c29tZSBkZXZpY2UgZm9yIGRtYS4gSS5lLiBpb24gb25seQo+ICsgICBleHBvc2VzIGV4aXN0aW5n IGNtYSByZWdpb25zIGFuZCBkb2Vzbid0IHJlc2VydmUgdW5lY2Vzc2FyaWx5IG1lbW9yeSB3aGVu Cj4gKyAgIGJvb3RpbmcgYSBzeXN0ZW0gd2hpY2ggZG9lc24ndCB1c2UgaW9uLgo+ICsKPiAgIFBs ZWFzZSBzZW5kIHBhdGNoZXMgdG8gR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4g YW5kIENjOgo+ICAgQnJpYW4gU3dldGxhbmQgPHN3ZXRsYW5kQGdvb2dsZS5jb20+Cj4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752901AbbHUVKu (ORCPT ); Fri, 21 Aug 2015 17:10:50 -0400 Received: from mga09.intel.com ([134.134.136.24]:33530 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752246AbbHUVKs (ORCPT ); Fri, 21 Aug 2015 17:10:48 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,723,1432623600"; d="scan'208";a="629953031" Subject: Re: [PATCH] staging/android: Update ION TODO per LPC discussion To: Daniel Vetter , LKML References: <1440190977-10050-1-git-send-email-daniel.vetter@ffwll.ch> Cc: DRI Development , Greg KH , Laura Abbott , sumit.semwal@linaro.org, laurent.pinchart@ideasonboard.com, ghackmann@google.com, robdclark@gmail.com, david.brown@arm.com, romlem@google.com, Daniel Vetter From: Tiago Vignatti Message-ID: <55D793D4.4050500@intel.com> Date: Fri, 21 Aug 2015 18:10:44 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <1440190977-10050-1-git-send-email-daniel.vetter@ffwll.ch> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org sgtm. Thanks for keeping me in the loop. Tiago On 08/21/2015 06:02 PM, Daniel Vetter wrote: > We discussed a bit with the folks on the Cc: list below what to do > with ION. Two big take-aways: > > - High-performance drivers (like gpus) always want to play tricks with > coherency and will lie to the dma api (radeon, nouveau, i915 gpu > drivers all do so in upstream). What needs to be done here is fill > gaps in dma-buf so that we can do this without breaking the dma-api > expections of other clients like v4l. The consesus is that hw won't > stop needing these tricks anytime soon. > > - Placement constraints for shared buffers won't be solved any other > way than through something platform-specific like ion with > platform-specific knowledge in userspace in something like gralloc. > For general-purpose devices where this assumption would be painful > for userspace (like servers) the consensus is that such devices will > have proper MMUs where placement constraint handling is fairly > irrelevant. > > Hence it is reasonable to destage ion as-is without changing the > overall design to enable these use-cases and just fixing up a these > few fairly minor things. Since there won't relly be an open-source > userspace for ion (and hence drm maintainers won't take it) the > proposal is to eventually move it to drivers/android/ion.[hc]. Laura > would be ok with being maintainer once this is all done and ion is > destaged. > > Note that Thiago is working on exposing the cpu cache flushing for > cpu access from userspace through mmaps so this is alread in progress. > Also adding him to the Cc: list. > > v2: Add ION_IOC_IMPORT to the list of ioctl that probably should go. > > Cc: Laura Abbott > Cc: sumit.semwal@linaro.org > Cc: laurent.pinchart@ideasonboard.com > Cc: ghackmann@google.com > Cc: robdclark@gmail.com > Cc: david.brown@arm.com > Cc: romlem@google.com > Cc: Tiago Vignatti > Signed-off-by: Daniel Vetter > --- > drivers/staging/android/TODO | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/staging/android/TODO b/drivers/staging/android/TODO > index 06954cdf3dba..bc84a72af32d 100644 > --- a/drivers/staging/android/TODO > +++ b/drivers/staging/android/TODO > @@ -13,5 +13,25 @@ TODO: > - This bug is introduced by Xiong Zhou in the patch bd471258f2e09 > - ("staging: android: logger: use kuid_t instead of uid_t") > > + > +ion/ > + - Remove ION_IOC_SYNC: Flushing for devices should be purely a kernel internal > + interface on top of dma-buf. flush_for_device needs to be added to dma-buf > + first. > + - Remove ION_IOC_CUSTOM: Atm used for cache flushing for cpu access in some > + vendor trees. Should be replaced with an ioctl on the dma-buf to expose the > + begin/end_cpu_access hooks to userspace. > + - Clarify the tricks ion plays with explicitly managing coherency behind the > + dma api's back (this is absolutely needed for high-perf gpu drivers): Add an > + explicit coherency management mode to flush_for_device to be used by drivers > + which want to manage caches themselves and which indicates whether cpu caches > + need flushing. > + - With those removed there's probably no use for ION_IOC_IMPORT anymore either > + since ion would just be the central allocator for shared buffers. > + - Add dt-binding to expose cma regions as ion heaps, with the rule that any > + such cma regions must already be used by some device for dma. I.e. ion only > + exposes existing cma regions and doesn't reserve unecessarily memory when > + booting a system which doesn't use ion. > + > Please send patches to Greg Kroah-Hartman and Cc: > Brian Swetland >