All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>,
	hyesoo.yu@samsung.com, david@redhat.com, mhocko@suse.com,
	surenb@google.com, pullip.cho@samsung.com, joaodias@google.com,
	hridya@google.com, john.stultz@linaro.org,
	sumit.semwal@linaro.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, hch@infradead.org,
	robh+dt@kernel.org, linaro-mm-sig@lists.linaro.org,
	Minchan Kim <minchan@kernel.org>
Subject: [PATCH v3 0/4] Chunk Heap Support on DMA-HEAP
Date: Tue, 12 Jan 2021 17:21:39 -0800	[thread overview]
Message-ID: <20210113012143.1201105-1-minchan@kernel.org> (raw)

This patchset introduces a new dma heap, "chunk-heap" that makes it
easy to perform the bulk allocation of high order pages.
It has been created to help optimize the 4K/8K HDR video playback
with secure DRM HW to protect contents on memory. The HW needs
physically contiguous memory chunks(e.g, 64K) up to several hundred
MB memory.

To make such high-order big bulk allocations work, chunk-heap uses
CMA area. To avoid CMA allocation long stall on blocking pages(e.g.,
page writeback and/or page locking), it uses failfast mode of the
CMA API(i.e., __GFP_NORETRY) so it will continue to find easy
migratable pages in different pageblocks without stalling. At last
resort, it will allow the blocking only if it couldn't find the
available memory in the end.

First two patches introduces the failfast mode as __GFP_NORETRY
in alloc_contig_range and the allow to use it from the CMA API.
Third patch introduces device tree syntax for chunk-heap to bind
the specific CMA area with chunk-heap.
Finally, last patch implements chunk-heap as dma-buf heap.

* since v2 -
  * introduce gfp_mask with __GFP_NORETRY on cma_alloc - mhocko
  * do not expoert CMA APIs - Christoph
  * use compatible string for DT instead of dma-heap specific property - Hridya

* Since v1 - https://lore.kernel.org/linux-mm/20201117181935.3613581-1-minchan@kernel.org/
  * introduce alloc_contig_mode - David
  * use default CMA instead of device tree - John

Hyesoo Yu (2):
  dt-bindings: reserved-memory: Make DMA-BUF CMA heap DT-configurable
  dma-buf: heaps: add chunk heap to dmabuf heaps

Minchan Kim (2):
  mm: cma: introduce gfp flag in cma_alloc instead of no_warn
  mm: failfast mode with __GFP_NORETRY in alloc_contig_range

 .../reserved-memory/dma_heap_chunk.yaml       |  58 +++
 drivers/dma-buf/heaps/Kconfig                 |   8 +
 drivers/dma-buf/heaps/Makefile                |   1 +
 drivers/dma-buf/heaps/chunk_heap.c            | 477 ++++++++++++++++++
 drivers/dma-buf/heaps/cma_heap.c              |   2 +-
 drivers/s390/char/vmcp.c                      |   2 +-
 include/linux/cma.h                           |   2 +-
 kernel/dma/contiguous.c                       |   3 +-
 mm/cma.c                                      |  12 +-
 mm/cma_debug.c                                |   2 +-
 mm/hugetlb.c                                  |   6 +-
 mm/page_alloc.c                               |   8 +-
 mm/secretmem.c                                |   3 +-
 13 files changed, 568 insertions(+), 16 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/reserved-memory/dma_heap_chunk.yaml
 create mode 100644 drivers/dma-buf/heaps/chunk_heap.c

-- 
2.30.0.284.gd98b1dd5eaa7-goog


             reply	other threads:[~2021-01-13  1:22 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-13  1:21 Minchan Kim [this message]
2021-01-13  1:21 ` [PATCH v3 1/4] mm: cma: introduce gfp flag in cma_alloc instead of no_warn Minchan Kim
2021-01-20 21:08   ` Suren Baghdasaryan
2021-01-13  1:21 ` [PATCH v3 2/4] mm: failfast mode with __GFP_NORETRY in alloc_contig_range Minchan Kim
2021-01-13  8:39   ` David Hildenbrand
2021-01-14 18:04     ` Minchan Kim
2021-01-13  1:21 ` [PATCH v3 3/4] dt-bindings: reserved-memory: Make DMA-BUF CMA heap DT-configurable Minchan Kim
2021-01-13 15:45   ` Rob Herring
2021-01-13 17:30     ` Hridya Valsaraju
2021-01-13 17:30       ` Hridya Valsaraju
2021-01-14 14:01   ` Rob Herring
2021-01-14 19:49     ` Hridya Valsaraju
2021-01-14 19:49       ` Hridya Valsaraju
2021-01-13  1:21 ` [PATCH v3 4/4] dma-buf: heaps: add chunk heap to dmabuf heaps Minchan Kim
2021-01-13  3:11   ` kernel test robot
2021-01-13  3:11     ` kernel test robot
2021-01-14  1:04     ` Minchan Kim
2021-01-14  1:04       ` Minchan Kim
2021-01-13  3:38   ` Randy Dunlap
2021-01-14  1:04     ` Minchan Kim
2021-01-13  6:25   ` kernel test robot
2021-01-13  6:25     ` kernel test robot
2021-01-19 15:51   ` Minchan Kim
2021-01-19 18:29   ` John Stultz
2021-01-19 18:29     ` John Stultz
2021-01-19 20:36     ` Minchan Kim
2021-01-19 20:36       ` Minchan Kim
2021-01-20  3:32       ` Hyesoo Yu
2021-01-20  3:32         ` Hyesoo Yu
2021-01-20 20:53         ` Suren Baghdasaryan
2021-01-20 20:53           ` Suren Baghdasaryan

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=20210113012143.1201105-1-minchan@kernel.org \
    --to=minchan@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hch@infradead.org \
    --cc=hridya@google.com \
    --cc=hyesoo.yu@samsung.com \
    --cc=joaodias@google.com \
    --cc=john.stultz@linaro.org \
    --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=mhocko@suse.com \
    --cc=pullip.cho@samsung.com \
    --cc=robh+dt@kernel.org \
    --cc=sumit.semwal@linaro.org \
    --cc=surenb@google.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.