[RFC][PATCH] dma-buf: system_heap: Avoid warning on mid-order allocations

John Stultz john.stultz at linaro.org
Wed Aug 25 18:30:59 UTC 2021


When trying to do mid-order allocations, set __GFP_NOWARN to
avoid warning messages if the allocation fails, as we will
still fall back to single page allocatitions in that case.
This is the similar to what we already do for large order
allocations.

Cc: Daniel Vetter <daniel at ffwll.ch>
Cc: Christian Koenig <christian.koenig at amd.com>
Cc: Sumit Semwal <sumit.semwal at linaro.org>
Cc: Liam Mark <lmark at codeaurora.org>
Cc: Chris Goldsworthy <cgoldswo at codeaurora.org>
Cc: Laura Abbott <labbott at kernel.org>
Cc: Brian Starkey <Brian.Starkey at arm.com>
Cc: Hridya Valsaraju <hridya at google.com>
Cc: Suren Baghdasaryan <surenb at google.com>
Cc: Sandeep Patil <sspatil at google.com>
Cc: Daniel Mentz <danielmentz at google.com>
Cc: Ørjan Eide <orjan.eide at arm.com>
Cc: Robin Murphy <robin.murphy at arm.com>
Cc: Ezequiel Garcia <ezequiel at collabora.com>
Cc: Simon Ser <contact at emersion.fr>
Cc: James Jones <jajones at nvidia.com>
Cc: Leo Yan <leo.yan at linaro.org>
Cc: linux-media at vger.kernel.org
Cc: dri-devel at lists.freedesktop.org
Signed-off-by: John Stultz <john.stultz at linaro.org>
---
 drivers/dma-buf/heaps/system_heap.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index 23a7e74ef966..f57a39ddd063 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -40,11 +40,12 @@ struct dma_heap_attachment {
 	bool mapped;
 };
 
+#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
+#define MID_ORDER_GFP (LOW_ORDER_GFP | __GFP_NOWARN)
 #define HIGH_ORDER_GFP  (((GFP_HIGHUSER | __GFP_ZERO | __GFP_NOWARN \
 				| __GFP_NORETRY) & ~__GFP_RECLAIM) \
 				| __GFP_COMP)
-#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
-static gfp_t order_flags[] = {HIGH_ORDER_GFP, LOW_ORDER_GFP, LOW_ORDER_GFP};
+static gfp_t order_flags[] = {HIGH_ORDER_GFP, MID_ORDER_GFP, LOW_ORDER_GFP};
 /*
  * The selection of the orders used for allocation (1MB, 64K, 4K) is designed
  * to match with the sizes often found in IOMMUs. Using order 4 pages instead
-- 
2.25.1



More information about the dri-devel mailing list