From: Brian Starkey <brian.starkey@arm.com>
To: Hyesoo Yu <hyesoo.yu@samsung.com>
Cc: sumit.semwal@linaro.org, minchan@kernel.org,
akpm@linux-foundation.org, iamjoonsoo.kim@lge.com,
joaodias@google.com, linux-mm@kvack.org, pullip.cho@samsung.com,
surenb@google.com, vbabka@suse.cz, afd@ti.com,
benjamin.gaignard@linaro.org, lmark@codeaurora.org,
labbott@redhat.com, john.stultz@linaro.org,
christian.koenig@amd.com, linux-media@vger.kernel.org,
dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org,
linux-kernel@vger.kernel.org, robh+dt@kernel.org,
devicetree@vger.kernel.org, nd@arm.com
Subject: Re: [PATCH 0/3] Chunk Heap Support on DMA-HEAP
Date: Tue, 18 Aug 2020 11:55:57 +0100 [thread overview]
Message-ID: <20200818105557.svky5c7gdvk6khzu@DESKTOP-E1NTVVP.localdomain> (raw)
In-Reply-To: <20200818080415.7531-1-hyesoo.yu@samsung.com>
Hi,
On Tue, Aug 18, 2020 at 05:04:12PM +0900, Hyesoo Yu wrote:
> These patch series to introduce a new dma heap, chunk heap.
> That heap is needed for special HW that requires bulk allocation of
> fixed high order pages. For example, 64MB dma-buf pages are made up
> to fixed order-4 pages * 1024.
>
> The chunk heap uses alloc_pages_bulk to allocate high order page.
> https://lore.kernel.org/linux-mm/20200814173131.2803002-1-minchan@kernel.org
>
> The chunk heap is registered by device tree with alignment and memory node
> of contiguous memory allocator(CMA). Alignment defines chunk page size.
> For example, alignment 0x1_0000 means chunk page size is 64KB.
> The phandle to memory node indicates contiguous memory allocator(CMA).
> If device node doesn't have cma, the registration of chunk heap fails.
This reminds me of an ion heap developed at Arm several years ago:
https://git.linaro.org/landing-teams/working/arm/kernel.git/tree/drivers/staging/android/ion/ion_compound_page.c
Some more descriptive text here:
https://github.com/ARM-software/CPA
It maintains a pool of high-order pages with a worker thread to
attempt compaction and allocation to keep the pool filled, with high
and low watermarks to trigger freeing/allocating of chunks.
It implements a shrinker to allow the system to reclaim the pool under
high memory pressure.
Is maintaining a pool something you considered? From the
alloc_pages_bulk thread it sounds like you want to allocate 300M at a
time, so I expect if you tuned the pool size to match that it could
work quite well.
That implementation isn't using a CMA region, but a similar approach
could definitely be applied.
Thanks,
-Brian
>
> The patchset includes the following:
> - export dma-heap API to register kernel module dma heap.
> - add chunk heap implementation.
> - document of device tree to register chunk heap
>
> Hyesoo Yu (3):
> dma-buf: add missing EXPORT_SYMBOL_GPL() for dma heaps
> dma-buf: heaps: add chunk heap to dmabuf heaps
> dma-heap: Devicetree binding for chunk heap
>
> .../devicetree/bindings/dma-buf/chunk_heap.yaml | 46 +++++
> drivers/dma-buf/dma-heap.c | 2 +
> drivers/dma-buf/heaps/Kconfig | 9 +
> drivers/dma-buf/heaps/Makefile | 1 +
> drivers/dma-buf/heaps/chunk_heap.c | 222 +++++++++++++++++++++
> drivers/dma-buf/heaps/heap-helpers.c | 2 +
> 6 files changed, 282 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/dma-buf/chunk_heap.yaml
> create mode 100644 drivers/dma-buf/heaps/chunk_heap.c
>
> --
> 2.7.4
>
next prev parent reply other threads:[~2020-08-18 10:56 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20200818074547epcas2p21e0c2442873d03800c7bc2c3e76405d6@epcas2p2.samsung.com>
2020-08-18 8:04 ` Hyesoo Yu
[not found] ` <CGME20200818074550epcas2p1e12121bc6e38086277766f08a59767ff@epcas2p1.samsung.com>
2020-08-18 8:04 ` [PATCH 1/3] dma-buf: add missing EXPORT_SYMBOL_GPL() for dma heaps Hyesoo Yu
[not found] ` <CGME20200818074553epcas2p240c2129fb8186f53e03abb0a0725461c@epcas2p2.samsung.com>
2020-08-18 8:04 ` [PATCH 2/3] dma-buf: heaps: add chunk heap to dmabuf heaps Hyesoo Yu
2020-08-18 10:11 ` David Hildenbrand
2020-08-18 10:17 ` kernel test robot
[not found] ` <CGME20200818074554epcas2p2702e648ba975ea6fbe33c84396b152a9@epcas2p2.samsung.com>
2020-08-18 8:04 ` [PATCH 3/3] dma-heap: Devicetree binding for chunk heap Hyesoo Yu
2020-08-18 16:48 ` Rob Herring
2020-08-21 8:21 ` Hyesoo Yu
2020-08-18 10:55 ` Brian Starkey [this message]
2020-08-19 3:46 ` [PATCH 0/3] Chunk Heap Support on DMA-HEAP Cho KyongHo
2020-08-19 13:22 ` Brian Starkey
2020-08-21 7:38 ` Cho KyongHo
2020-08-18 20:55 ` John Stultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200818105557.svky5c7gdvk6khzu@DESKTOP-E1NTVVP.localdomain \
--to=brian.starkey@arm.com \
--cc=afd@ti.com \
--cc=akpm@linux-foundation.org \
--cc=benjamin.gaignard@linaro.org \
--cc=christian.koenig@amd.com \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hyesoo.yu@samsung.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=joaodias@google.com \
--cc=john.stultz@linaro.org \
--cc=labbott@redhat.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lmark@codeaurora.org \
--cc=minchan@kernel.org \
--cc=nd@arm.com \
--cc=pullip.cho@samsung.com \
--cc=robh+dt@kernel.org \
--cc=sumit.semwal@linaro.org \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox