Re: [PATCH v3 09/10] mm/vmalloc: Update __vmalloc_node_range() documentation

From: Baoquan He
Date: Sat Oct 04 2025 - 00:12:18 EST


On 10/01/25 at 09:26pm, Uladzislau Rezki (Sony) wrote:
> __vmalloc() function now supports non-blocking flags such as
> GFP_ATOMIC and GFP_NOWAIT. Update the documentation accordingly.
>
> Acked-by: Michal Hocko <mhocko@xxxxxxxx>
> Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
> ---
> mm/vmalloc.c | 21 +++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index d7e7049e01f8..2b45cd4ce119 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -3881,19 +3881,20 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
> * @caller: caller's return address
> *
> * Allocate enough pages to cover @size from the page level
> - * allocator with @gfp_mask flags. Please note that the full set of gfp
> - * flags are not supported. GFP_KERNEL, GFP_NOFS and GFP_NOIO are all
> - * supported.
> - * 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 (i.e. __GFP_NORETRY and
> - * __GFP_RETRY_MAYFAIL are not supported).
> + * allocator with @gfp_mask flags and map them into contiguous
> + * virtual range with protection @prot.
> *
> - * __GFP_NOWARN can be used to suppress failures messages.
> + * Supported GFP classes: %GFP_KERNEL, %GFP_ATOMIC, %GFP_NOWAIT,
> + * %GFP_NOFS and %GFP_NOIO. Zone modifiers are not supported.
> + * Please note %GFP_ATOMIC and %GFP_NOWAIT are supported only
> + * by __vmalloc().
> +
> + * Retry modifiers: only %__GFP_NOFAIL is supported; %__GFP_NORETRY
> + * and %__GFP_RETRY_MAYFAIL are not supported.

Do we need to update the documentation of __vmalloc_node_noprof()
accordingly? I see it has below description about "Retry modifiers"
where gfp_mask is passed down to __vmalloc_node_range_noprof() directly
but have different description. Not sure if I missed anything.

===
* Retry modifiers: only %__GFP_NOFAIL is supported; %__GFP_NORETRY
* and %__GFP_RETRY_MAYFAIL are not supported.
===

> *
> - * Map them into contiguous kernel virtual space, using a pagetable
> - * protection of @prot.
> + * %__GFP_NOWARN can be used to suppress failure messages.
> *
> + * Can not be called from interrupt nor NMI contexts.
> * Return: the address of the area or %NULL on failure
> */
> void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align,
> --
> 2.47.3
>