From 20aedafda5c266b37ef751c17b2238e39f07ef0a Mon Sep 17 00:00:00 2001 From: Xianzhong Date: Mon, 22 Oct 2018 19:13:15 +0800 Subject: MGS-4338-2 [#imx-1223] GPU memory optimization for page fault GPU memory initialization will cause large boot time with 40ms. If GPU memory is allocated from CMA, memset in cma kernel driver, It is not necessary to add duplicated memset in GPU kernel driver. Only GFP allocator need trigger a page fault with a simple write. Signed-off-by: Xianzhong --- .../os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator') 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 937c7521ff0e..71a867c9302c 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 @@ -926,6 +926,12 @@ _GFPMapKernel( addr = vmap(pages, numPages, 0, pgprot_writecombine(PAGE_KERNEL)); + /* Trigger a page fault. */ + for (i = 0; i < numPages; i++) + { + *(gctINT *)(addr + PAGE_SIZE * i) = 0; + } + if (free) { kfree(pages); -- cgit v1.2.3