On Fri, Mar 01, 2019 at 03:43:19PM +0100, Vlastimil Babka wrote: > On 2/25/19 9:30 PM, Roman Gushchin wrote: > > alloc_vmap_area() is allocating memory for the vmap_area, and > > performing the actual lookup of the vm area and vmap_area > > initialization. > > > > This prevents us from using a pre-allocated memory for the map_area > > structure, which can be used in some cases to minimize the number > > of required memory allocations. > > Hmm, but that doesn't happen here or in the later patch, right? The only > caller of init_vmap_area() is alloc_vmap_area(). What am I missing? So initially the patch was a part of a bigger patchset, which tried to minimize the number of separate allocations during vmalloc(), e.g. by inlining vm_struct->pages into vm_struct for small areas. I temporarily dropped the rest of the patchset for some rework, but decided to leave this patch, because it looks like a nice refactoring in any case, and also it has been already reviewed and acked by Matthew and Johannes. Thank you for looking into it!