Messages in this thread | | | From | Chris Goldsworthy <> | Subject | [PATCH v4] mm: cma: indefinitely retry allocations in cma_alloc | Date | Mon, 28 Sep 2020 13:30:26 -0700 |
| |
V1: Introduces a retry loop that attempts a CMA allocation a finite number of times before giving up:
https://lkml.org/lkml/2020/8/5/1097 https://lkml.org/lkml/2020/8/11/893
V2: Introduces an indefinite retry for CMA allocations. David Hildenbrand raised a page pinning example which precludes doing this infite-retrying for all CMA users:
https://lkml.org/lkml/2020/9/17/984
V3: Re-introduce a GFP mask argument for cma_alloc(), that can take in __GFP_NOFAIL as an argument to indicate that a CMA allocation should be retried indefinitely. This lets callers of cma_alloc() decide if they want to perform indefinite retires. Also introduces a config option for controlling the duration of the sleep between retries:
https://www.spinics.net/lists/linux-mm/msg228778.html
V4: In response to comments by Minchan Kim, we make the sleep interruptable and remove a defconfig option controlling how long the sleep lasts for (it is now a fixed 100 ms).
Chris Goldsworthy (1): mm: cma: indefinitely retry allocations in cma_alloc
arch/powerpc/kvm/book3s_hv_builtin.c | 2 +- drivers/dma-buf/heaps/cma_heap.c | 2 +- drivers/s390/char/vmcp.c | 2 +- drivers/staging/android/ion/ion_cma_heap.c | 2 +- include/linux/cma.h | 2 +- kernel/dma/contiguous.c | 4 ++-- mm/cma.c | 36 +++++++++++++++++++++++++----- mm/cma_debug.c | 2 +- mm/hugetlb.c | 4 ++-- 9 files changed, 40 insertions(+), 16 deletions(-)
-- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project
| |