2022-10-08 02:24:56

by Alexander Aring

[permalink] [raw]
Subject: [PATCH] mm: slab: comment __GFP_ZERO case for kmem_cache_alloc

This patch will add a comment for the __GFP_ZERO flag case for
kmem_cache_alloc(). As the current comment mentioned that the flags only
matters if the cache has no available objects it's different for the
__GFP_ZERO flag which will ensure that the returned object is always
zeroed in any case.

I have the feeling I run into this question already two times if the
user need to zero the object or not, but the user does not need to zero
the object afterwards. However another use of __GFP_ZERO and only zero
the object if the cache has no available objects would also make no
sense.

Signed-off-by: Alexander Aring <[email protected]>
---
mm/slab.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/slab.c b/mm/slab.c
index 10e96137b44f..7a84c2aae85a 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3482,7 +3482,8 @@ void *__kmem_cache_alloc_lru(struct kmem_cache *cachep, struct list_lru *lru,
* @flags: See kmalloc().
*
* Allocate an object from this cache. The flags are only relevant
- * if the cache has no available objects.
+ * if the cache has no available objects. Except flag __GFP_ZERO which
+ * will zero the returned object.
*
* Return: pointer to the new object or %NULL in case of error
*/
--
2.31.1


2022-10-08 04:52:10

by Hyeonggon Yoo

[permalink] [raw]
Subject: Re: [PATCH] mm: slab: comment __GFP_ZERO case for kmem_cache_alloc

On Fri, Oct 07, 2022 at 10:03:12PM -0400, Alexander Aring wrote:
> This patch will add a comment for the __GFP_ZERO flag case for
> kmem_cache_alloc(). As the current comment mentioned that the flags only
> matters if the cache has no available objects it's different for the
> __GFP_ZERO flag which will ensure that the returned object is always
> zeroed in any case.
>
> I have the feeling I run into this question already two times if the
> user need to zero the object or not, but the user does not need to zero
> the object afterwards. However another use of __GFP_ZERO and only zero
> the object if the cache has no available objects would also make no
> sense.
>
> Signed-off-by: Alexander Aring <[email protected]>
> ---
> mm/slab.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/slab.c b/mm/slab.c
> index 10e96137b44f..7a84c2aae85a 100644
> --- a/mm/slab.c
> +++ b/mm/slab.c
> @@ -3482,7 +3482,8 @@ void *__kmem_cache_alloc_lru(struct kmem_cache *cachep, struct list_lru *lru,
> * @flags: See kmalloc().
> *
> * Allocate an object from this cache. The flags are only relevant
> - * if the cache has no available objects.
> + * if the cache has no available objects. Except flag __GFP_ZERO which
> + * will zero the returned object.
> *
> * Return: pointer to the new object or %NULL in case of error
> */
> --
> 2.31.1
>

Acked-by: Hyeonggon Yoo <[email protected]>

Thanks!

--
Thanks,
Hyeonggon

2022-10-10 03:51:04

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] mm: slab: comment __GFP_ZERO case for kmem_cache_alloc

On Fri, 7 Oct 2022, Alexander Aring wrote:

> diff --git a/mm/slab.c b/mm/slab.c
> index 10e96137b44f..7a84c2aae85a 100644
> --- a/mm/slab.c
> +++ b/mm/slab.c
> @@ -3482,7 +3482,8 @@ void *__kmem_cache_alloc_lru(struct kmem_cache *cachep, struct list_lru *lru,
> * @flags: See kmalloc().
> *
> * Allocate an object from this cache. The flags are only relevant
> - * if the cache has no available objects.
> + * if the cache has no available objects. Except flag __GFP_ZERO which
> + * will zero the returned object.

Minor nit: it's probably better to do "... has no available objects,
except flag ..." and not seperate sentences. After that is done, feel
free to add

Acked-by: David Rientjes <[email protected]>