[lkml]   [2020]   [Nov]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v7 0/5] dma-buf: Code rework and performance improvements for system heap
Hey All,
So Sumit noted a flub I made in adapting the last series to
the new dma-buf-map code that is in drm-misc-next. Thus I wanted
to send this (hopefully) last revision of my patch series of
performance optimizations to the dma-buf system heap, once again
against drm-misc-next.

This series reworks the system heap to use sgtables, and then
consolidates the pagelist method from the heap-helpers into the
CMA heap. After which the heap-helpers logic is removed (as it
is unused). I'd still like to find a better way to avoid some of
the logic duplication in implementing the entire dma_buf_ops
handlers per heap. But unfortunately that code is tied somewhat
to how the buffer's memory is tracked. As more heaps show up I
think we'll have a better idea how to best share code, so for
now I think this is ok.

After this, the series introduces an optimization that
Ørjan Eide implemented for ION that avoids calling sync on
attachments that don't have a mapping.

Finally, an optimization to use larger order pages for the system
heap. This change brings us closer to the current performance
of the ION allocation code (though there still is a gap due
to ION using a mix of deferred-freeing and page pools, I'll be
looking at integrating those eventually).

This version of the series does not include the system-uncached
heap as Daniel wanted further demonstration that it is useful
with devices that use the mesa stack. I'm working on such a
justification but I don't want to hold up these rework patches
in the meantime.


New in v7:
* Fixed the incorrect adaptation to the dma-buf-map usage

Cc: Sumit Semwal <>
Cc: Liam Mark <>
Cc: Laura Abbott <>
Cc: Brian Starkey <>
Cc: Hridya Valsaraju <>
Cc: Suren Baghdasaryan <>
Cc: Sandeep Patil <>
Cc: Daniel Mentz <>
Cc: Chris Goldsworthy <>
Cc: Ørjan Eide <>
Cc: Robin Murphy <>
Cc: Ezequiel Garcia <>
Cc: Simon Ser <>
Cc: James Jones <>

John Stultz (5):
dma-buf: system_heap: Rework system heap to use sgtables instead of
dma-buf: heaps: Move heap-helper logic into the cma_heap
dma-buf: heaps: Remove heap-helpers code
dma-buf: heaps: Skip sync if not mapped
dma-buf: system_heap: Allocate higher order pages if available

drivers/dma-buf/heaps/Makefile | 1 -
drivers/dma-buf/heaps/cma_heap.c | 329 +++++++++++++++++----
drivers/dma-buf/heaps/heap-helpers.c | 274 ------------------
drivers/dma-buf/heaps/heap-helpers.h | 53 ----
drivers/dma-buf/heaps/system_heap.c | 414 ++++++++++++++++++++++++---
5 files changed, 647 insertions(+), 424 deletions(-)
delete mode 100644 drivers/dma-buf/heaps/heap-helpers.c
delete mode 100644 drivers/dma-buf/heaps/heap-helpers.h


 \ /
  Last update: 2020-11-22 00:50    [W:0.080 / U:1.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site