[PATCH 0/2] Optimization of CMA allocation and reclaiming

From: zhaoyang.huang
Date: Mon May 08 2023 - 05:35:52 EST


From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx>

These two commits help to solve bellowing OOM issue which all free pages are
composed of CMA.

04166 < 4> [ 36.172486] [03-19 10:05:52.172] ActivityManager: page allocation failure: order:0, mode:0xc00(GFP_NOIO), nodemask=(null),cpuset=foreground,mems_allowed=0
0419C < 4> [ 36.189447] [03-19 10:05:52.189] DMA32: 0*4kB 447*8kB (C) 217*16kB (C) 124*32kB (C) 136*64kB (C) 70*128kB (C) 22*256kB (C) 3*512kB (C) 0*1024kB 0*2048kB 0*4096kB = 35848kB
0419D < 4> [ 36.193125] [03-19 10:05:52.193] Normal: 231*4kB (UMEH) 49*8kB (MEH) 14*16kB (H) 13*32kB (H) 8*64kB (H) 2*128kB (H) 0*256kB 1*512kB (H) 0*1024kB 0*2048kB 0*4096kB = 3236kB
......
041EA < 4> [ 36.234447] [03-19 10:05:52.234] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
041EB < 4> [ 36.234455] [03-19 10:05:52.234] cache: ext4_io_end, object size: 64, buffer size: 64, default order: 0, min order: 0
041EC < 4> [ 36.234459] [03-19 10:05:52.234] node 0: slabs: 53,objs: 3392, free: 0

Zhaoyang Huang (2):
mm: optimization on page allocation when CMA enabled
mm: skip CMA pages when they are not available

mm/page_alloc.c | 46 ++++++++++++++++++++++++++++++++++++++++------
mm/vmscan.c | 15 +++++++++++++--
2 files changed, 53 insertions(+), 8 deletions(-)

--
1.9.1