Message ID | 20210705170537.43060-2-urezki@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] mm/vmalloc: Use batched page requests in bulk-allocator | expand |
On Mon 05-07-21 19:05:37, Uladzislau Rezki (Sony) wrote: > 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(). > > Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> Acked-by: Michal Hocko <mhocko@suse.com> > --- > mm/vmalloc.c | 18 ++++++++---------- > 1 file changed, 8 insertions(+), 10 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 5297958ac7c5..93a9cbdba905 100644 > --- a/mm/vmalloc.c > +++ b/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 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, > 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()) > @@ -2834,9 +2834,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; > } > > -- > 2.20.1
On Wed, Jul 07, 2021 at 10:51:22AM +0200, Michal Hocko wrote: > On Mon 05-07-21 19:05:37, Uladzislau Rezki (Sony) wrote: > > 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(). > > > > Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> > > Acked-by: Michal Hocko <mhocko@suse.com> > Thanks! -- Vlad Rezki
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 5297958ac7c5..93a9cbdba905 100644 --- a/mm/vmalloc.c +++ b/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 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, 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()) @@ -2834,9 +2834,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; }
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(). Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> --- mm/vmalloc.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-)