[PATCH v4 0/3] dma-buf: heaps: Use constant name for CMA heap

Jared Kangas posted 3 patches 4 months ago
Documentation/userspace-api/dma-buf-heaps.rst | 11 +++---
drivers/dma-buf/heaps/Kconfig                 | 10 ++++++
drivers/dma-buf/heaps/cma_heap.c              | 36 +++++++++++++++----
3 files changed, 46 insertions(+), 11 deletions(-)
[PATCH v4 0/3] dma-buf: heaps: Use constant name for CMA heap
Posted by Jared Kangas 4 months ago
Hi all,

This patch series is based on a previous discussion around CMA heap
naming. [1] The heap's name depends on the device name, which is
generally "reserved", "linux,cma", or "default-pool", but could be any
arbitrary name given to the default CMA area in the devicetree. For a
consistent userspace interface, the series introduces a constant name
for the CMA heap, and for backwards compatibility, an additional Kconfig
that controls the creation of a legacy-named heap with the same CMA
backing.

The ideas to handle backwards compatibility in [1] are to either use a
symlink or add a heap node with a duplicate minor. However, I assume
that we don't want to create symlinks in /dev from module initcalls, and
attempting to duplicate minors would cause device_create() to fail.
Because of these drawbacks, after brainstorming with Maxime Ripard, I
went with creating a new node in devtmpfs with its own minor. This
admittedly makes it a little unclear that the old and new nodes are
backed by the same heap when both are present. The only approach that I
think would provide total clarity on this in userspace is symlinking,
which seemed like a fairly involved solution for devtmpfs, but if I'm
wrong on this, please let me know.

Changelog:

v4:
  - Fix ERR_PTR() usage for negative return value.

v3:
  - Extract documentation markup fix to separate patch.
  - Adjust DEFAULT_CMA_NAME per discussion in [2].
  - Warn if the legacy heap name and the default heap name are the same.
  - Fix DMABUF_HEAPS_CMA_LEGACY prompt.
  - Touch up commit log wording.

v2:
  - Use tabs instead of spaces for large vertical alignment.

[1]: https://lore.kernel.org/all/f6412229-4606-41ad-8c05-7bbba2eb6e08@ti.com/
[2]: https://lore.kernel.org/all/CANDhNCroe6ZBtN_o=c71kzFFaWK-fF5rCdnr9P5h1sgPOWSGSw@mail.gmail.com/

Jared Kangas (3):
  Documentation: dma-buf: heaps: Fix code markup
  dma-buf: heaps: Parameterize heap name in __add_cma_heap()
  dma-buf: heaps: Give default CMA heap a fixed name

 Documentation/userspace-api/dma-buf-heaps.rst | 11 +++---
 drivers/dma-buf/heaps/Kconfig                 | 10 ++++++
 drivers/dma-buf/heaps/cma_heap.c              | 36 +++++++++++++++----
 3 files changed, 46 insertions(+), 11 deletions(-)

-- 
2.49.0
Re: [PATCH v4 0/3] dma-buf: heaps: Use constant name for CMA heap
Posted by Jared Kangas 3 months ago
On Tue, Jun 10, 2025 at 06:12:28AM -0700, Jared Kangas wrote:
> Hi all,
> 
> This patch series is based on a previous discussion around CMA heap
> naming. [1] The heap's name depends on the device name, which is
> generally "reserved", "linux,cma", or "default-pool", but could be any
> arbitrary name given to the default CMA area in the devicetree. For a
> consistent userspace interface, the series introduces a constant name
> for the CMA heap, and for backwards compatibility, an additional Kconfig
> that controls the creation of a legacy-named heap with the same CMA
> backing.
> 
> The ideas to handle backwards compatibility in [1] are to either use a
> symlink or add a heap node with a duplicate minor. However, I assume
> that we don't want to create symlinks in /dev from module initcalls, and
> attempting to duplicate minors would cause device_create() to fail.
> Because of these drawbacks, after brainstorming with Maxime Ripard, I
> went with creating a new node in devtmpfs with its own minor. This
> admittedly makes it a little unclear that the old and new nodes are
> backed by the same heap when both are present. The only approach that I
> think would provide total clarity on this in userspace is symlinking,
> which seemed like a fairly involved solution for devtmpfs, but if I'm
> wrong on this, please let me know.
> 
> Changelog:
> 
> v4:
>   - Fix ERR_PTR() usage for negative return value.
> 
> v3:
>   - Extract documentation markup fix to separate patch.
>   - Adjust DEFAULT_CMA_NAME per discussion in [2].
>   - Warn if the legacy heap name and the default heap name are the same.
>   - Fix DMABUF_HEAPS_CMA_LEGACY prompt.
>   - Touch up commit log wording.
> 
> v2:
>   - Use tabs instead of spaces for large vertical alignment.
> 
> [1]: https://lore.kernel.org/all/f6412229-4606-41ad-8c05-7bbba2eb6e08@ti.com/
> [2]: https://lore.kernel.org/all/CANDhNCroe6ZBtN_o=c71kzFFaWK-fF5rCdnr9P5h1sgPOWSGSw@mail.gmail.com/
> 
> Jared Kangas (3):
>   Documentation: dma-buf: heaps: Fix code markup
>   dma-buf: heaps: Parameterize heap name in __add_cma_heap()
>   dma-buf: heaps: Give default CMA heap a fixed name
> 
>  Documentation/userspace-api/dma-buf-heaps.rst | 11 +++---
>  drivers/dma-buf/heaps/Kconfig                 | 10 ++++++
>  drivers/dma-buf/heaps/cma_heap.c              | 36 +++++++++++++++----
>  3 files changed, 46 insertions(+), 11 deletions(-)
> 
> -- 
> 2.49.0
> 

Hi Sumit,

Just wanted to check in on this since discussion has died down this
iteration: what's the status on this series? If there's anything I can
do to help, I'm happy to lend a hand.

Thanks,
Jared
Re: [PATCH v4 0/3] dma-buf: heaps: Use constant name for CMA heap
Posted by Sumit Semwal 3 months ago
Hello Jared,

On Mon, 7 Jul 2025 at 18:40, Jared Kangas <jkangas@redhat.com> wrote:
>
> On Tue, Jun 10, 2025 at 06:12:28AM -0700, Jared Kangas wrote:
> > Hi all,
> >
> > This patch series is based on a previous discussion around CMA heap
> > naming. [1] The heap's name depends on the device name, which is
> > generally "reserved", "linux,cma", or "default-pool", but could be any
> > arbitrary name given to the default CMA area in the devicetree. For a
> > consistent userspace interface, the series introduces a constant name
> > for the CMA heap, and for backwards compatibility, an additional Kconfig
> > that controls the creation of a legacy-named heap with the same CMA
> > backing.
> >
> > The ideas to handle backwards compatibility in [1] are to either use a
> > symlink or add a heap node with a duplicate minor. However, I assume
> > that we don't want to create symlinks in /dev from module initcalls, and
> > attempting to duplicate minors would cause device_create() to fail.
> > Because of these drawbacks, after brainstorming with Maxime Ripard, I
> > went with creating a new node in devtmpfs with its own minor. This
> > admittedly makes it a little unclear that the old and new nodes are
> > backed by the same heap when both are present. The only approach that I
> > think would provide total clarity on this in userspace is symlinking,
> > which seemed like a fairly involved solution for devtmpfs, but if I'm
> > wrong on this, please let me know.
> >
> > Changelog:
> >
> > v4:
> >   - Fix ERR_PTR() usage for negative return value.
> >
> > v3:
> >   - Extract documentation markup fix to separate patch.
> >   - Adjust DEFAULT_CMA_NAME per discussion in [2].
> >   - Warn if the legacy heap name and the default heap name are the same.
> >   - Fix DMABUF_HEAPS_CMA_LEGACY prompt.
> >   - Touch up commit log wording.
> >
> > v2:
> >   - Use tabs instead of spaces for large vertical alignment.
> >
> > [1]: https://lore.kernel.org/all/f6412229-4606-41ad-8c05-7bbba2eb6e08@ti.com/
> > [2]: https://lore.kernel.org/all/CANDhNCroe6ZBtN_o=c71kzFFaWK-fF5rCdnr9P5h1sgPOWSGSw@mail.gmail.com/
> >
> > Jared Kangas (3):
> >   Documentation: dma-buf: heaps: Fix code markup
> >   dma-buf: heaps: Parameterize heap name in __add_cma_heap()
> >   dma-buf: heaps: Give default CMA heap a fixed name
> >
> >  Documentation/userspace-api/dma-buf-heaps.rst | 11 +++---
> >  drivers/dma-buf/heaps/Kconfig                 | 10 ++++++
> >  drivers/dma-buf/heaps/cma_heap.c              | 36 +++++++++++++++----
> >  3 files changed, 46 insertions(+), 11 deletions(-)
> >
> > --
> > 2.49.0
> >
>
> Hi Sumit,
>
> Just wanted to check in on this since discussion has died down this
> iteration: what's the status on this series? If there's anything I can
> do to help, I'm happy to lend a hand.

I'm sorry, I had to be out for a bit due to some personal reasons;
overall it looks good to me. I'll apply it very soon.

Thank you for your patience!

>
> Thanks,
> Jared
Best,
Sumit.
>


-- 
Thanks and regards,

Sumit Semwal (he / him)
Senior Tech Lead - Android, Platforms and Virtualisation
Linaro.org │ Arm Solutions at Light Speed