Skip to content
Snippets Groups Projects
Commit c32b0cf9 authored by Xianzhong's avatar Xianzhong Committed by Gianfranco Mariotti
Browse files

LF-4436-4 [#imx-2664] avoid lowmem killer when allocate sgl table


sg_alloc_table_from_pages may trigger lowmem killer with GFP_KERNEL flag,
disable GFP_KERNEL to avoid lowmem killer when allocate sgl table for GPU.

[ 1704.740010] Chrome_InProcGp invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0
[ 1704.749265] CPU: 3 PID: 1251 Comm: Chrome_InProcGp Tainted: G         C        5.10.52-lts-5.10.y+g5788c4507376 #1
[ 1704.759618] Hardware name: NXP i.MX8MNano EVK board (DT)
[ 1704.764929] Call trace:
[ 1704.767385]  dump_backtrace+0x0/0x1a0
[ 1704.771051]  show_stack+0x18/0x70
[ 1704.774368]  dump_stack+0xd0/0x12c
[ 1704.777770]  dump_header+0x48/0x1f4
[ 1704.781259]  oom_kill_process+0x200/0x204
[ 1704.785268]  out_of_memory+0x178/0x560
[ 1704.789018]  __alloc_pages_nodemask+0xb34/0xc24
[ 1704.793549]  alloc_pages_current+0x80/0x13c
[ 1704.797752]  __get_free_pages+0x14/0x50
[ 1704.801595]  __sg_alloc_table_from_pages+0x22c/0x484
[ 1704.806559]  sg_alloc_table_from_pages+0x24/0x3c
[ 1704.811176]  _GFPAlloc+0x2b0/0x670
[ 1704.814579]  gckOS_AllocatePagedMemory+0xf4/0x1fc
[ 1704.819302]  gckVIDMEM_NODE_AllocateVirtual+0xc4/0x190
[ 1704.824446]  gckKERNEL_AllocateVideoMemory+0x2f8/0x380
[ 1704.829584]  _AllocateLinearMemory+0xb8/0x1b4
[ 1704.833943]  gckKERNEL_Dispatch+0x20c/0x13d4
[ 1704.838229]  gckDEVICE_Dispatch+0x80/0x1bc
[ 1704.842328]  drv_ioctl+0x1b4/0x270
[ 1704.845750]  __arm64_sys_ioctl+0xa8/0xf0
[ 1704.849677]  el0_svc_common.constprop.0+0x78/0x1a0
[ 1704.854469]  do_el0_svc+0x24/0x90
[ 1704.857803]  el0_svc+0x14/0x20
[ 1704.860860]  el0_sync_handler+0x1a4/0x1b0
[ 1704.864869]  el0_sync+0x180/0x1c0

Signed-off-by: default avatarXianzhong <xianzhong.li@nxp.com>
parent 61ef7920
No related branches found
No related tags found
1 merge request!156Draft: [i.MX] mxc: gpu-viv: apply patches
......@@ -628,7 +628,7 @@ _GFPAlloc(
#if gcdUSE_Linux_SG_TABLE_API
result = sg_alloc_table_from_pages(&mdlPriv->sgt,
mdlPriv->nonContiguousPages, NumPages, 0,
NumPages << PAGE_SHIFT, GFP_KERNEL);
NumPages << PAGE_SHIFT, normal_gfp);
#else
result = alloc_sg_list_from_pages(&mdlPriv->sgt.sgl,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment