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=-6.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,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 39375C43381 for ; Sat, 16 Mar 2019 00:16:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F1714218AC for ; Sat, 16 Mar 2019 00:16:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EBa+wUxh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726774AbfCPAQt (ORCPT ); Fri, 15 Mar 2019 20:16:49 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:34976 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726404AbfCPAQt (ORCPT ); Fri, 15 Mar 2019 20:16:49 -0400 Received: by mail-wr1-f65.google.com with SMTP id w1so5331469wrp.2 for ; Fri, 15 Mar 2019 17:16:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AoD+knAlz3bws5yL5P/ADP0iS5uhqJVppDIkBdID5rw=; b=EBa+wUxhUnTUdUcl3ZVnnTRnbjXoeefaWc66vS05b1V7JyKeL687V8ffCFM9/RbIkH v66wjYx8PMnoL/2mpIQ04jOobfatxnC+a+xiCauS5U9eg1DQnIqPJmgeS+vsYwNWGBVR JP3OuNikMXRXSq76ZdkUBDbJYyem1/ouqswtGM04sv9alC3ZkNf46w5iFMnUA9Bvy1A/ KTXrfCt6pDtHOrch1ys4qBTdacKN4/lKqmvF/1LzlguOjlTy1Ybyl3K4Kckh5XLyeZQ8 ko/hpg01WUyIPeaRbsbezfFPFFB8xTfaz3F0cWh4mLgHMzZz48N+ug+/doFupov8OTm4 WAgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AoD+knAlz3bws5yL5P/ADP0iS5uhqJVppDIkBdID5rw=; b=eWA1ONOl6nE4Sk2rVWfCcpZiAkb/HG49KMtWNpAJS3jbttibCf58tWCn9kX0QQw/g7 wX3qo2z28tKniHRY2T2W84P4axD8+6Q+/PPn841DZ49P12yO1ErMTsrnZujY2lRctaCT ogx/P0X7xmuycAo2BtfvijQ/4pUoT8EPOrakqkI4bvk9dkPQhslwszUtvMPAepMWL1T6 ld4t0dQUHtow+FJLG6cALziLyYcrW7lTavGN2XSgDcNetdrHlmvZN80yxOvoUM45bsH+ gwOfWS601H7Ervqt+r0/M/ZEpFO9ZaBJTK1CleX20XD8u6e4GGSu8A/umQs5OwqQHJe3 Vz0w== X-Gm-Message-State: APjAAAUY6kWe8QigBdwLNjDXqwXQJEVNGMNz/N0QQ+ZiSF8/WAs6x3b+ JnIsPPHxdqBMj9VI2FgMl0HjTG+UnIMT9QRx1kh8foy1 X-Google-Smtp-Source: APXvYqxVmJMUiaryFXwZo/FDGUu5a3Cq3dtja+UTANs6iT3Lo1JpsdeFqspq6z5TABkNWvZrDJ+fEjpffDYZk3XM8qA= X-Received: by 2002:adf:fa51:: with SMTP id y17mr4342564wrr.233.1552695407561; Fri, 15 Mar 2019 17:16:47 -0700 (PDT) MIME-Version: 1.0 References: <1551819273-640-1-git-send-email-john.stultz@linaro.org> <20190315231547.GB3242@redhat.com> In-Reply-To: <20190315231547.GB3242@redhat.com> From: John Stultz Date: Fri, 15 Mar 2019 17:16:36 -0700 Message-ID: Subject: Re: [RFC][PATCH 0/5 v2] DMA-BUF Heaps (destaging ION) To: Jerome Glisse Cc: lkml , Greg KH , Chenbo Feng , Alistair Strachan , Liam Mark , dri-devel , "Andrew F . Davis" 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, Mar 15, 2019 at 4:15 PM Jerome Glisse wrote: > On Tue, Mar 05, 2019 at 12:54:28PM -0800, John Stultz wrote: > > Here is a initial RFC of the dma-buf heaps patchset Andrew and I > > have been working on which tries to destage a fair chunk of ION > > functionality. > > > > The patchset implements per-heap devices which can be opened > > directly and then an ioctl is used to allocate a dmabuf from the > > heap. > > > > The interface is similar, but much simpler then IONs, only > > providing an ALLOC ioctl. > > > > Also, I've provided simple system and cma heaps. The system > > heap in particular is missing the page-pool optimizations ION > > had, but works well enough to validate the interface. > > > > I've booted and tested these patches with AOSP on the HiKey960 > > using the kernel tree here: > > https://git.linaro.org/people/john.stultz/android-dev.git/log/?h=dev/dma-buf-heap > > > > And the userspace changes here: > > https://android-review.googlesource.com/c/device/linaro/hikey/+/909436 > > What upstream driver will use this eventualy ? And why is it > needed ? So, its sort of a complicated answer, as we don't have a fully open pipeline just yet. The HiKey board's upstream kirin drm driver uses this, as it needs contiguous buffers for its framebuffers. So in Android the HiKey gralloc (opensource userspace) allocates the HW_FB buffers from the CMA heap. Other graphics buffers are then allocated by gralloc out of the system heap and SurfaceFlinger and drm_hwc (both also opensource userspace) coordinate squashing those other buffers down through the mali utgard gpu (proprietary GL blob) onto the target HW_FB buffer. (All of the above is the same for the HiKey960, but we're still working the drm driver into shape for upstreaming). That said, I know the Lima driver is starting to shape up, and I'm hoping to give it a whirl to replace the proprietary utgard driver. Everything else would stay the same, which would give us a fully open pipeline. I know for other dev boards like the db410c w/ freedreno, the Android pipeline gets away with using the gbmgralloc implementation, but my understanding in that case is the rendering/display pipeline doesn't require contiguous buffers, so the allocation logic can be simpler, and doesn't use ION heaps. But its possible a gralloc could be implemented to use the system heap for allocations on that device. thanks -john From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: Re: [RFC][PATCH 0/5 v2] DMA-BUF Heaps (destaging ION) Date: Fri, 15 Mar 2019 17:16:36 -0700 Message-ID: References: <1551819273-640-1-git-send-email-john.stultz@linaro.org> <20190315231547.GB3242@redhat.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 1816B6E3B2 for ; Sat, 16 Mar 2019 00:16:49 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id k1so10802076wre.1 for ; Fri, 15 Mar 2019 17:16:49 -0700 (PDT) In-Reply-To: <20190315231547.GB3242@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jerome Glisse Cc: Greg KH , Chenbo Feng , lkml , dri-devel , Alistair Strachan , Liam Mark , "Andrew F . Davis" List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMTUsIDIwMTkgYXQgNDoxNSBQTSBKZXJvbWUgR2xpc3NlIDxqZ2xpc3NlQHJl ZGhhdC5jb20+IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDA1LCAyMDE5IGF0IDEyOjU0OjI4UE0gLTA4 MDAsIEpvaG4gU3R1bHR6IHdyb3RlOgo+ID4gSGVyZSBpcyBhIGluaXRpYWwgUkZDIG9mIHRoZSBk bWEtYnVmIGhlYXBzIHBhdGNoc2V0IEFuZHJldyBhbmQgSQo+ID4gaGF2ZSBiZWVuIHdvcmtpbmcg b24gd2hpY2ggdHJpZXMgdG8gZGVzdGFnZSBhIGZhaXIgY2h1bmsgb2YgSU9OCj4gPiBmdW5jdGlv bmFsaXR5Lgo+ID4KPiA+IFRoZSBwYXRjaHNldCBpbXBsZW1lbnRzIHBlci1oZWFwIGRldmljZXMg d2hpY2ggY2FuIGJlIG9wZW5lZAo+ID4gZGlyZWN0bHkgYW5kIHRoZW4gYW4gaW9jdGwgaXMgdXNl ZCB0byBhbGxvY2F0ZSBhIGRtYWJ1ZiBmcm9tIHRoZQo+ID4gaGVhcC4KPiA+Cj4gPiBUaGUgaW50 ZXJmYWNlIGlzIHNpbWlsYXIsIGJ1dCBtdWNoIHNpbXBsZXIgdGhlbiBJT05zLCBvbmx5Cj4gPiBw cm92aWRpbmcgYW4gQUxMT0MgaW9jdGwuCj4gPgo+ID4gQWxzbywgSSd2ZSBwcm92aWRlZCBzaW1w bGUgc3lzdGVtIGFuZCBjbWEgaGVhcHMuIFRoZSBzeXN0ZW0KPiA+IGhlYXAgaW4gcGFydGljdWxh ciBpcyBtaXNzaW5nIHRoZSBwYWdlLXBvb2wgb3B0aW1pemF0aW9ucyBJT04KPiA+IGhhZCwgYnV0 IHdvcmtzIHdlbGwgZW5vdWdoIHRvIHZhbGlkYXRlIHRoZSBpbnRlcmZhY2UuCj4gPgo+ID4gSSd2 ZSBib290ZWQgYW5kIHRlc3RlZCB0aGVzZSBwYXRjaGVzIHdpdGggQU9TUCBvbiB0aGUgSGlLZXk5 NjAKPiA+IHVzaW5nIHRoZSBrZXJuZWwgdHJlZSBoZXJlOgo+ID4gICBodHRwczovL2dpdC5saW5h cm8ub3JnL3Blb3BsZS9qb2huLnN0dWx0ei9hbmRyb2lkLWRldi5naXQvbG9nLz9oPWRldi9kbWEt YnVmLWhlYXAKPiA+Cj4gPiBBbmQgdGhlIHVzZXJzcGFjZSBjaGFuZ2VzIGhlcmU6Cj4gPiAgIGh0 dHBzOi8vYW5kcm9pZC1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2RldmljZS9saW5hcm8vaGlr ZXkvKy85MDk0MzYKPgo+IFdoYXQgdXBzdHJlYW0gZHJpdmVyIHdpbGwgdXNlIHRoaXMgZXZlbnR1 YWx5ID8gQW5kIHdoeSBpcyBpdAo+IG5lZWRlZCA/CgpTbywgaXRzIHNvcnQgb2YgYSBjb21wbGlj YXRlZCBhbnN3ZXIsIGFzIHdlIGRvbid0IGhhdmUgYSBmdWxseSBvcGVuCnBpcGVsaW5lIGp1c3Qg eWV0LiAgVGhlIEhpS2V5IGJvYXJkJ3MgdXBzdHJlYW0ga2lyaW4gZHJtIGRyaXZlciB1c2VzCnRo aXMsIGFzIGl0IG5lZWRzIGNvbnRpZ3VvdXMgYnVmZmVycyBmb3IgaXRzIGZyYW1lYnVmZmVycy4g U28gaW4KQW5kcm9pZCB0aGUgSGlLZXkgZ3JhbGxvYyAob3BlbnNvdXJjZSB1c2Vyc3BhY2UpIGFs bG9jYXRlcyB0aGUgSFdfRkIKYnVmZmVycyBmcm9tIHRoZSBDTUEgaGVhcC4gIE90aGVyIGdyYXBo aWNzIGJ1ZmZlcnMgYXJlIHRoZW4gYWxsb2NhdGVkCmJ5IGdyYWxsb2Mgb3V0IG9mIHRoZSBzeXN0 ZW0gaGVhcCBhbmQgU3VyZmFjZUZsaW5nZXIgYW5kICBkcm1faHdjCihib3RoIGFsc28gb3BlbnNv dXJjZSB1c2Vyc3BhY2UpIGNvb3JkaW5hdGUgc3F1YXNoaW5nIHRob3NlIG90aGVyCmJ1ZmZlcnMg ZG93biB0aHJvdWdoIHRoZSBtYWxpIHV0Z2FyZCBncHUgKHByb3ByaWV0YXJ5IEdMIGJsb2IpIG9u dG8KdGhlIHRhcmdldCBIV19GQiBidWZmZXIuICAoQWxsIG9mIHRoZSBhYm92ZSBpcyB0aGUgc2Ft ZSBmb3IgdGhlCkhpS2V5OTYwLCBidXQgd2UncmUgc3RpbGwgd29ya2luZyB0aGUgZHJtIGRyaXZl ciBpbnRvIHNoYXBlIGZvcgp1cHN0cmVhbWluZykuCgpUaGF0IHNhaWQsIEkga25vdyB0aGUgTGlt YSBkcml2ZXIgaXMgc3RhcnRpbmcgdG8gc2hhcGUgdXAsIGFuZCBJJ20KaG9waW5nIHRvIGdpdmUg aXQgYSB3aGlybCB0byByZXBsYWNlIHRoZSBwcm9wcmlldGFyeSB1dGdhcmQgZHJpdmVyLgpFdmVy eXRoaW5nIGVsc2Ugd291bGQgc3RheSB0aGUgc2FtZSwgd2hpY2ggd291bGQgZ2l2ZSB1cyBhIGZ1 bGx5IG9wZW4KcGlwZWxpbmUuCgpJIGtub3cgZm9yIG90aGVyIGRldiBib2FyZHMgbGlrZSB0aGUg ZGI0MTBjIHcvIGZyZWVkcmVubywgdGhlIEFuZHJvaWQKcGlwZWxpbmUgZ2V0cyBhd2F5IHdpdGgg dXNpbmcgdGhlIGdibWdyYWxsb2MgaW1wbGVtZW50YXRpb24sIGJ1dCBteQp1bmRlcnN0YW5kaW5n IGluIHRoYXQgY2FzZSBpcyB0aGUgcmVuZGVyaW5nL2Rpc3BsYXkgcGlwZWxpbmUgZG9lc24ndApy ZXF1aXJlIGNvbnRpZ3VvdXMgYnVmZmVycywgc28gdGhlIGFsbG9jYXRpb24gbG9naWMgY2FuIGJl IHNpbXBsZXIsCmFuZCBkb2Vzbid0IHVzZSBJT04gaGVhcHMuIEJ1dCBpdHMgcG9zc2libGUgYSBn cmFsbG9jIGNvdWxkIGJlCmltcGxlbWVudGVkIHRvIHVzZSB0aGUgc3lzdGVtIGhlYXAgZm9yIGFs bG9jYXRpb25zIG9uIHRoYXQgZGV2aWNlLgoKdGhhbmtzCi1qb2huCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==