Re: [PATCH] mm, vmalloc: use __GFP_HIGHMEM implicitly

From: Andrew Morton
Date: Tue Mar 07 2017 - 18:16:11 EST


On Tue, 7 Mar 2017 15:10:20 +0100 Michal Hocko <mhocko@xxxxxxxxxx> 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...