Re: [PATCH 2/4] mm/vmalloc: add support for __GFP_NOFAIL

From: NeilBrown
Date: Tue Oct 26 2021 - 06:31:09 EST


On Tue, 26 Oct 2021, Michal Hocko wrote:
> On Tue 26-10-21 09:59:36, Neil Brown wrote:
> > On Tue, 26 Oct 2021, Michal Hocko wrote:
> [...]
> > > @@ -3032,6 +3036,10 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
> > > warn_alloc(gfp_mask, NULL,
> > > "vmalloc error: size %lu, vm_struct allocation failed",
> > > real_size);
> > > + if (gfp_mask & __GFP_NOFAIL) {
> > > + schedule_timeout_uninterruptible(1);
> > > + goto again;
> > > + }
> >
> > Shouldn't the retry happen *before* the warning?
>
> I've done it after to catch the "depleted or fragmented" vmalloc space.
> This is not related to the memory available and therefore it won't be
> handled by the oom killer. The error message shouldn't imply the vmalloc
> allocation failure IMHO but I am open to suggestions.

The word "failed" does seem to imply what you don't want it to imply...

I guess it is reasonable to have this warning, but maybe add " -- retrying"
if __GFP_NOFAIL.

Thanks,
NeilBrown