Messages in this thread | | | Date | Wed, 8 May 2024 22:13:37 +0800 | Subject | Re: [RFC PATCH] mm/vmalloc: fix vmalloc which may return null if called with __GFP_NOFAIL | From | Gao Xiang <> |
| |
On 2024/5/8 21:41, Gao Xiang wrote: > > +Cc Michal, > > On 2024/5/8 20:58, hailong.liu@oppo.com wrote: >> From: "Hailong.Liu" <hailong.liu@oppo.com> >> >> Commit a421ef303008 ("mm: allow !GFP_KERNEL allocations for kvmalloc") >> includes support for __GFP_NOFAIL, but it presents a conflict with >> commit dd544141b9eb ("vmalloc: back off when the current task is >> OOM-killed"). A possible scenario is as belows: >> >> process-a >> kvcalloc(n, m, GFP_KERNEL | __GFP_NOFAIL) >> __vmalloc_node_range() >> __vmalloc_area_node() >> vm_area_alloc_pages() >> --> oom-killer send SIGKILL to process-a >> if (fatal_signal_pending(current)) break; >> --> return NULL; >> >> to fix this, do not check fatal_signal_pending() in vm_area_alloc_pages() >> if __GFP_NOFAIL set. >> >> Reported-by: Oven <liyangouwen1@oppo.com> >> Signed-off-by: Hailong.Liu <hailong.liu@oppo.com> > > Why taging this as RFC here? It seems a corner-case fix of > commit a421ef303008
BTW, I guess maybe commit e9c3cda4d86e ("mm, vmalloc: fix high order __GFP_NOFAIL allocations") misses fatal_signal_pending() handling anyway..
> > Thanks, > Gao Xiang >
| |