On Mon 20-01-25 09:22:47, zhiguojiang wrote: > > > 在 2025/1/17 19:43, Michal Hocko 写道: > > On Fri 17-01-25 18:25:13, zhiguojiang wrote: > > [...] > > > > Could you describe problem that you are trying to solve? > > > In a dual zone system with both movable and normal zones, we encountered > > > the problem where the GFP_KERNEL flag failed to allocate memory from the > > > normal zone and crashed. Analyzing the logs, we found that there was > > > very little free memory in the normal zone, but more free memory in the > > > movable zone at this time. Therefore, we want to reclaim accurately > > > the normal zone's memory occupied by memcg through > > > try_to_free_mem_cgroup_pages(). > > Could you be more specific please? What was the allocation request. Has > > the allocation or charge failed? Do you have allocation failure memory > > info or oom killer report? > Hi Michal Hocko, > > RAM12GB, Normal zone 7GB, Movable zone 5GB. > Issue: kmalloc-order3 fails from Normal zone and triggers oom-killer. At > this time, > there is no order3 memory in Normal zone, but there is still a lot in > Movable zone. Thank you, I believe this makes the situation much more clear. It seems that the Zone normal is too fragmented to satisfy order-3 allocation request (the amount of free memory is above high watermark). That means that the focus should be more on memory compaction rather than reclaim. And more importantly at the global level rather than memcg. Also you are running quite an old kernel which might be missing many compaction related improvements. I would recommend re-running your workload with the current Linus tree to see whether your problem is still reproducible. If yes, please report along with compaction counters (reported viac /proc/vmstat). Good luck! -- Michal Hocko SUSE Labs