Re: [patch 099/262] mm/vmalloc: be more explicit about supported gfp flags

From: Michal Hocko
Date: Mon Nov 08 2021 - 04:25:10 EST


On Fri 05-11-21 13:39:50, Andrew Morton wrote:
> From: Michal Hocko <mhocko@xxxxxxxx>
> Subject: mm/vmalloc: be more explicit about supported gfp flags
>
> The core of the vmalloc allocator __vmalloc_area_node doesn't say anything
> about gfp mask argument. Not all gfp flags are supported though. Be more
> explicit about constraints.
>
> Link: https://lkml.kernel.org/r/20211020082545.4830-1-mhocko@xxxxxxxxxx
> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
> Cc: Dave Chinner <david@xxxxxxxxxxxxx>
> Cc: Neil Brown <neilb@xxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> Cc: Uladzislau Rezki <urezki@xxxxxxxxx>
> Cc: Ilya Dryomov <idryomov@xxxxxxxxx>
> Cc: Jeff Layton <jlayton@xxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

As already pointed out
http://lkml.kernel.org/r/YXE+hcodJ7zxeYA7@xxxxxxxxxxxxxx this patch
cannot be applied without other patches from the same series.

> ---
>
> mm/vmalloc.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> --- a/mm/vmalloc.c~mm-vmalloc-be-more-explicit-about-supported-gfp-flags
> +++ a/mm/vmalloc.c
> @@ -2983,8 +2983,16 @@ fail:
> * @caller: caller's return address
> *
> * Allocate enough pages to cover @size from the page level
> - * allocator with @gfp_mask flags. Map them into contiguous
> - * kernel virtual space, using a pagetable protection of @prot.
> + * allocator with @gfp_mask flags. Please note that the full set of gfp
> + * flags are not supported. GFP_KERNEL would be a preferred allocation mode
> + * but GFP_NOFS and GFP_NOIO are supported as well. Zone modifiers are not
> + * supported. From the reclaim modifiers__GFP_DIRECT_RECLAIM is required (aka
> + * GFP_NOWAIT is not supported) and only __GFP_NOFAIL is supported (aka
> + * __GFP_NORETRY and __GFP_RETRY_MAYFAIL are not supported).
> + * __GFP_NOWARN can be used to suppress error messages about failures.
> + *
> + * Map them into contiguous kernel virtual space, using a pagetable
> + * protection of @prot.
> *
> * Return: the address of the area or %NULL on failure
> */
> _

--
Michal Hocko
SUSE Labs