diff options
author | Xianzhong <xianzhong.li@nxp.com> | 2020-08-13 11:24:15 +0800 |
---|---|---|
committer | Xianzhong <xianzhong.li@nxp.com> | 2020-08-14 18:22:45 +0800 |
commit | ca331e5a4ad2fe95dce0e00149a5ab0c51d99e66 (patch) | |
tree | fd92b988fda02f45d1d2559bbefb653747c23de3 /drivers/mxc | |
parent | 59501b0f9c9b4471b47d1583b47afe17e7e001a3 (diff) |
MGS-5928-2 [#ccc] support virtual memory in normal zone
opencl conformance encounters out of memory on 6qp often
Normal free:223540kB, free_cma:180280kB
0 pages HighMem/MovableOnly
currently GPU virtual memory allocate highmem only,
change to try normal zone first, then go highmem.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Diffstat (limited to 'drivers/mxc')
-rw-r--r-- | drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c index fecc26fded16..2678b9033204 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c @@ -474,7 +474,8 @@ _GFPAlloc( gceSTATUS status; gctSIZE_T i = 0; gctBOOL contiguous = Flags & gcvALLOC_FLAG_CONTIGUOUS; - u32 gfp = (contiguous ? (__GFP_HIGH | __GFP_ATOMIC) : GFP_KERNEL) | __GFP_HIGHMEM | gcdNOWARN; + u32 normal_gfp = __GFP_HIGH | __GFP_ATOMIC | __GFP_NORETRY | gcdNOWARN; + u32 gfp = (contiguous ? normal_gfp : GFP_KERNEL) | __GFP_HIGHMEM | gcdNOWARN; struct gfp_alloc *priv = (struct gfp_alloc *)Allocator->privateData; struct gfp_mdl_priv *mdlPriv = gcvNULL; @@ -582,7 +583,12 @@ _GFPAlloc( } else { - gcmkONERROR(_NonContiguousAlloc(mdlPriv, NumPages, gfp)); + status = _NonContiguousAlloc(mdlPriv, NumPages, normal_gfp); + + if (gcmIS_ERROR(status)) + { + gcmkONERROR(_NonContiguousAlloc(mdlPriv, NumPages, gfp)); + } } #if defined(CONFIG_X86) |