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