On Tue, 7 Mar 2017 15:10:20 +0100 Michal Hocko <[email protected]> wrote:
> __vmalloc* allows users to provide gfp flags for the underlying > allocation. This API is quite popular > $ git grep "=[[:space:]]__vmalloc\|return[[:space:]]*__vmalloc" | wc -l > 77 > > the only problem is that many people are not aware that they really want > to give __GFP_HIGHMEM along with other flags because there is really no > reason to consume precious lowmemory on CONFIG_HIGHMEM systems for pages > which are mapped to the kernel vmalloc space. About half of users don't > use this flag, though. This signals that we make the API unnecessarily > too complex. > > This patch simply uses __GFP_HIGHMEM implicitly when allocating pages to > be mapped to the vmalloc space. Current users which add __GFP_HIGHMEM > are simplified and drop the flag. hm. What happens if a caller wants only lowmem pages? Drivers do weird stuff...

