mm/vmalloc: remove gfpflags_allow_blocking() check
Get rid of gfpflags_allow_blocking() check from the vmalloc() path as it is supposed to be sleepable anyway. Thus remove it from the alloc_vmap_area() as well as from the vm_area_alloc_pages(). Link: https://lkml.kernel.org/r/20210707182639.31282-2-urezki@gmail.com Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> Acked-by: Michal Hocko <mhocko@suse.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Christoph Hellwig <hch@infradead.org> Cc: Matthew Wilcox <willy@infradead.org> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Hillf Danton <hdanton@sina.com> Cc: Oleksiy Avramchenko <oleksiy.avramchenko@sonymobile.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
343ab8178f
Коммит
12e376a6f8
18
mm/vmalloc.c
18
mm/vmalloc.c
|
@ -1479,6 +1479,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size,
|
|||
int node, gfp_t gfp_mask)
|
||||
{
|
||||
struct vmap_area *va;
|
||||
unsigned long freed;
|
||||
unsigned long addr;
|
||||
int purged = 0;
|
||||
int ret;
|
||||
|
@ -1542,13 +1543,12 @@ overflow:
|
|||
goto retry;
|
||||
}
|
||||
|
||||
if (gfpflags_allow_blocking(gfp_mask)) {
|
||||
unsigned long freed = 0;
|
||||
blocking_notifier_call_chain(&vmap_notify_list, 0, &freed);
|
||||
if (freed > 0) {
|
||||
purged = 0;
|
||||
goto retry;
|
||||
}
|
||||
freed = 0;
|
||||
blocking_notifier_call_chain(&vmap_notify_list, 0, &freed);
|
||||
|
||||
if (freed > 0) {
|
||||
purged = 0;
|
||||
goto retry;
|
||||
}
|
||||
|
||||
if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit())
|
||||
|
@ -2838,9 +2838,7 @@ vm_area_alloc_pages(gfp_t gfp, int nid,
|
|||
for (i = 0; i < (1U << order); i++)
|
||||
pages[nr_allocated + i] = page + i;
|
||||
|
||||
if (gfpflags_allow_blocking(gfp))
|
||||
cond_resched();
|
||||
|
||||
cond_resched();
|
||||
nr_allocated += 1U << order;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче