dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/2] dma-buf: heaps: Support carved-out heaps
@ 2025-06-17 12:25 Maxime Ripard
  2025-06-17 12:25 ` [PATCH v5 1/2] dt-bindings: reserved-memory: Introduce carved-out memory region binding Maxime Ripard
  2025-06-17 12:25 ` [PATCH v5 2/2] dma-buf: heaps: Introduce a new heap for reserved memory Maxime Ripard
  0 siblings, 2 replies; 12+ messages in thread
From: Maxime Ripard @ 2025-06-17 12:25 UTC (permalink / raw)
  To: Rob Herring, Saravana Kannan, Sumit Semwal, Benjamin Gaignard,
	Brian Starkey, John Stultz, T.J. Mercier, Christian König,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Andrew Davis, Jared Kangas, Mattijs Korpershoek, devicetree,
	linux-kernel, linux-media, dri-devel, linaro-mm-sig,
	Maxime Ripard

Hi,

This series is the follow-up of the discussion that John and I had some
time ago here:

https://lore.kernel.org/all/CANDhNCquJn6bH3KxKf65BWiTYLVqSd9892-xtFDHHqqyrroCMQ@mail.gmail.com/

The initial problem we were discussing was that I'm currently working on
a platform which has a memory layout with ECC enabled. However, enabling
the ECC has a number of drawbacks on that platform: lower performance,
increased memory usage, etc. So for things like framebuffers, the
trade-off isn't great and thus there's a memory region with ECC disabled
to allocate from for such use cases.

After a suggestion from John, I chose to first start using heap
allocations flags to allow for userspace to ask for a particular ECC
setup. This is then backed by a new heap type that runs from reserved
memory chunks flagged as such, and the existing DT properties to specify
the ECC properties.

After further discussion, it was considered that flags were not the
right solution, and relying on the names of the heaps would be enough to
let userspace know the kind of buffer it deals with.

Thus, even though the uAPI part of it has been dropped in this second
version, we still need a driver to create heaps out of carved-out memory
regions. In addition to the original usecase, a similar driver can be
found in BSPs from most vendors, so I believe it would be a useful
addition to the kernel.

Let me know what you think,
Maxime

Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Changes in v5:
- Rebased on 6.16-rc2
- Switch from property to dedicated binding
- Link to v4: https://lore.kernel.org/r/20250520-dma-buf-ecc-heap-v4-1-bd2e1f1bb42c@kernel.org

Changes in v4:
- Rebased on 6.15-rc7
- Map buffers only when map is actually called, not at allocation time
- Deal with restricted-dma-pool and shared-dma-pool
- Reword Kconfig options
- Properly report dma_map_sgtable failures
- Link to v3: https://lore.kernel.org/r/20250407-dma-buf-ecc-heap-v3-0-97cdd36a5f29@kernel.org

Changes in v3:
- Reworked global variable patch
- Link to v2: https://lore.kernel.org/r/20250401-dma-buf-ecc-heap-v2-0-043fd006a1af@kernel.org

Changes in v2:
- Add vmap/vunmap operations
- Drop ECC flags uapi
- Rebase on top of 6.14
- Link to v1: https://lore.kernel.org/r/20240515-dma-buf-ecc-heap-v1-0-54cbbd049511@kernel.org

---
Maxime Ripard (2):
      dt-bindings: reserved-memory: Introduce carved-out memory region binding
      dma-buf: heaps: Introduce a new heap for reserved memory

 .../bindings/reserved-memory/carved-out.yaml       |  49 +++
 drivers/dma-buf/heaps/Kconfig                      |   8 +
 drivers/dma-buf/heaps/Makefile                     |   1 +
 drivers/dma-buf/heaps/carveout_heap.c              | 362 +++++++++++++++++++++
 4 files changed, 420 insertions(+)
---
base-commit: d076bed8cb108ba2236d4d49c92303fda4036893
change-id: 20240515-dma-buf-ecc-heap-28a311d2c94e

Best regards,
-- 
Maxime Ripard <mripard@kernel.org>


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-08-20 15:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-17 12:25 [PATCH v5 0/2] dma-buf: heaps: Support carved-out heaps Maxime Ripard
2025-06-17 12:25 ` [PATCH v5 1/2] dt-bindings: reserved-memory: Introduce carved-out memory region binding Maxime Ripard
2025-06-27 19:31   ` Rob Herring
2025-06-30 16:41     ` Maxime Ripard
2025-06-30 22:08       ` Rob Herring
2025-07-01  7:12         ` Maxime Ripard
2025-07-07 13:54           ` Maxime Ripard
2025-06-17 12:25 ` [PATCH v5 2/2] dma-buf: heaps: Introduce a new heap for reserved memory Maxime Ripard
2025-06-27 19:23   ` Rob Herring
2025-06-30  8:52     ` Maxime Ripard
2025-08-08 10:16   ` Charan Teja Kalla
2025-08-20 15:22     ` Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).