Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp2585576ybi; Mon, 1 Jul 2019 14:46:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqzDVCkIG+rBhy1HCdvUfVPgfRVUXRXdg4HvCzNQ4SEtJr1Ol9ZdGEJeuP+SHhk0qihb8asT X-Received: by 2002:a63:58c:: with SMTP id 134mr25111128pgf.106.1562017564580; Mon, 01 Jul 2019 14:46:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562017564; cv=none; d=google.com; s=arc-20160816; b=qlr4OaFD/gfjItClJqZhWNar2NSmYZyDjXHLs+sjYAoiMlwVizZ6vRfzAeoRUEK1Ya 4sHnRn+TrvBRYrzrrDW/3cIi3VFjTmNNa3Kq90EwCpBwcj2UqIQuiSRTxXKfKMdShCCH qxxJ26RipWjX+8LC4behWJLbjiOUsxHUJeAf2KKZmtUCkqx7en0pzXLSoPRiqEn8bA5M NE7lUIa6Qz+cpX6Z64tTsb9qoFm8M8mZoq+6fSkPIb72Ij6JhSmqz8SGOaEMAYGhUhNO rYdBC7HApv1wxHLABVbRhpmQleQEbm05o+ZK4U4AygLT3fTCDjoAXDAyDQbSIV7LgfsD j2fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=1qBRMJRV8Yo1wnFWyu6TaXxSgsCcog45RWGTZOE20y8=; b=ZGXzwYPWnfYtXbrLV3gDdBjYAPvqzaEqXeS2dUSj41FFKPjnVaQxahXIdYfSmUg+7i sHHaLfPBWuHZobxmRmOW2UkjyAprFfr+Cx/0Pp7kZ9Xq5Xzb/gXC+zHMFhIpZ0itEeXh pmxYIxlfzIGT6svZwjfEFWTzJyJ2cXvaWTEgOMeBJVkafJOk/L7QLTiheWrxwIr+Y324 A4GsCeT4y51CyE4sgU1XXC6EaV2uibBw/NFOm7p3e6lo8L/GP8fhj6/3ORkbcuz53HFk +u7NHrDMfz3ieCrdwkbdfNJbsbgKPtJ0r7daQ9gNiOpHHxvDM0lJZa/ydo+ftFIxl/B7 isHg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1si11004203pli.151.2019.07.01.14.45.49; Mon, 01 Jul 2019 14:46:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726878AbfGAVpW (ORCPT + 99 others); Mon, 1 Jul 2019 17:45:22 -0400 Received: from mail-qk1-f193.google.com ([209.85.222.193]:37755 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726586AbfGAVpW (ORCPT ); Mon, 1 Jul 2019 17:45:22 -0400 Received: by mail-qk1-f193.google.com with SMTP id d15so12315903qkl.4 for ; Mon, 01 Jul 2019 14:45:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=1qBRMJRV8Yo1wnFWyu6TaXxSgsCcog45RWGTZOE20y8=; b=gZYBmH4fBds6gfRjY+VDo860xDB3uuGJyCjkVtjbY+Vk8ATr9J/X+95c1zryvFTCX3 M0f8+EyZFpuX2mxv3ATefWzvHn6a+E3imwfUWrIJTIR6gXi54yio7xFv4bnmJD1luRpb Kk5lWXvjEwpXswsuUvtejOkrCLccdLa7UzKxF2R61azzYPtwbKiPFgLqSDLCAooK3Jnn tbYP5Ug4DhU/7N6jdlYLFq1bVGW/0Glx4ttTnyQiOxoTHF4u5v4m+ziRcagib6ZlGA36 4000QmlXBRoMZ5x4dNL5i6cEV8mt+wMJsUwp3Xz6LBfFJqc2WNXRsT4Qc/e3jjoCDWxN dHIw== X-Gm-Message-State: APjAAAX1T4sqacW8+Tfp/PucjB0DD8GjpAGeOinLW43m44Te+zRBghCu dHkVkgAfkkdSxGApQMi8KQMOJw== X-Received: by 2002:a37:505:: with SMTP id 5mr22571376qkf.277.1562017521083; Mon, 01 Jul 2019 14:45:21 -0700 (PDT) Received: from [192.168.1.157] (pool-96-235-39-235.pitbpa.fios.verizon.net. [96.235.39.235]) by smtp.gmail.com with ESMTPSA id l6sm5055233qkc.89.2019.07.01.14.45.19 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Mon, 01 Jul 2019 14:45:20 -0700 (PDT) Subject: Re: [PATCH v6 0/5] DMA-BUF Heaps (destaging ION) To: John Stultz , lkml Cc: Benjamin Gaignard , Sumit Semwal , Liam Mark , Pratik Patel , Brian Starkey , Vincent Donnefort , Sudipto Paul , "Andrew F . Davis" , Christoph Hellwig , Chenbo Feng , Alistair Strachan , dri-devel@lists.freedesktop.org References: <20190624194908.121273-1-john.stultz@linaro.org> From: Laura Abbott Message-ID: <8e19047d-b0b0-506f-7c3d-cd09075b9da7@redhat.com> Date: Mon, 1 Jul 2019 17:45:19 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190624194908.121273-1-john.stultz@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/24/19 3:49 PM, John Stultz wrote: > Here is another pass at the dma-buf heaps patchset Andrew and I > have been working on which tries to destage a fair chunk of ION > functionality. > I've gotten bogged down with both work and personal tasks so I haven't had a chance to look too closely but, once again, I'm happy to see this continue to move forward. > 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 relatively simple system and cma heaps. > > 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 > > Compared to ION, this patchset is missing the system-contig, > carveout and chunk heaps, as I don't have a device that uses > those, so I'm unable to do much useful validation there. > Additionally we have no upstream users of chunk or carveout, > and the system-contig has been deprecated in the common/andoid-* > kernels, so this should be ok. > > I've also removed the stats accounting for now, since any such > accounting should be implemented by dma-buf core or the heaps > themselves. > > > New in v6: > * Number of cleanups and error path fixes suggested by Brian Starkey, > many thanks for his close review and suggestions! > > > Outstanding concerns: > * Need to better understand various secure heap implementations. > Some concern that heap private flags will be needed, but its > also possible that dma-buf heaps can't solve everyone's needs, > in which case, a vendor's secure buffer driver can implement > their own dma-buf exporter. So I'm not too worried here. > syzbot found a DoS with Ion which I ACKed a fix for. https://lore.kernel.org/lkml/03763360-a7de-de87-eb90-ba7838143930@I-love.SAKURA.ne.jp/ This series doesn't have the page pooling so that particular bug may not be applicable but given this is not the first time I've seen Ion used as a DoS mechanism, it would be good to think about putting in some basic checks. Thanks, Laura > Thoughts and feedback would be greatly appreciated! > > thanks > -john > > Cc: Laura Abbott > Cc: Benjamin Gaignard > Cc: Sumit Semwal > Cc: Liam Mark > Cc: Pratik Patel > Cc: Brian Starkey > Cc: Vincent Donnefort > Cc: Sudipto Paul > Cc: Andrew F. Davis > Cc: Christoph Hellwig > Cc: Chenbo Feng > Cc: Alistair Strachan > Cc: dri-devel@lists.freedesktop.org > > Andrew F. Davis (1): > dma-buf: Add dma-buf heaps framework > > John Stultz (4): > dma-buf: heaps: Add heap helpers > dma-buf: heaps: Add system heap to dmabuf heaps > dma-buf: heaps: Add CMA heap to dmabuf heaps > kselftests: Add dma-heap test > > MAINTAINERS | 18 ++ > drivers/dma-buf/Kconfig | 10 + > drivers/dma-buf/Makefile | 2 + > drivers/dma-buf/dma-heap.c | 249 +++++++++++++++++ > drivers/dma-buf/heaps/Kconfig | 14 + > drivers/dma-buf/heaps/Makefile | 4 + > drivers/dma-buf/heaps/cma_heap.c | 169 +++++++++++ > drivers/dma-buf/heaps/heap-helpers.c | 262 ++++++++++++++++++ > drivers/dma-buf/heaps/heap-helpers.h | 54 ++++ > drivers/dma-buf/heaps/system_heap.c | 121 ++++++++ > include/linux/dma-heap.h | 59 ++++ > include/uapi/linux/dma-heap.h | 55 ++++ > tools/testing/selftests/dmabuf-heaps/Makefile | 9 + > .../selftests/dmabuf-heaps/dmabuf-heap.c | 234 ++++++++++++++++ > 14 files changed, 1260 insertions(+) > create mode 100644 drivers/dma-buf/dma-heap.c > create mode 100644 drivers/dma-buf/heaps/Kconfig > create mode 100644 drivers/dma-buf/heaps/Makefile > create mode 100644 drivers/dma-buf/heaps/cma_heap.c > create mode 100644 drivers/dma-buf/heaps/heap-helpers.c > create mode 100644 drivers/dma-buf/heaps/heap-helpers.h > create mode 100644 drivers/dma-buf/heaps/system_heap.c > create mode 100644 include/linux/dma-heap.h > create mode 100644 include/uapi/linux/dma-heap.h > create mode 100644 tools/testing/selftests/dmabuf-heaps/Makefile > create mode 100644 tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c >