2022-11-23 13:26:59

by Feng Tang

[permalink] [raw]
Subject: [PATCH v2 -next 1/2] mm/slb: add is_kmalloc_cache() helper function

commit 6edf2576a6cc ("mm/slub: enable debugging memory wasting of
kmalloc") introduces 'SLAB_KMALLOC' bit specifying whether a
kmem_cache is a kmalloc cache for slab/slub (slob doesn't have
dedicated kmalloc caches).

Add a helper inline function for other components like kasan to
simplify code.

Signed-off-by: Feng Tang <[email protected]>
---
changlog:

since v1:
* don't use macro for the helper (Andrew Morton)
* place the inline function in mm/slb.h to solve data structure
definition issue (Vlastimil Babka)

mm/slab.h | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/mm/slab.h b/mm/slab.h
index e3b3231af742..0d72fd62751a 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -325,6 +325,14 @@ static inline slab_flags_t kmem_cache_flags(unsigned int object_size,
}
#endif

+static inline bool is_kmalloc_cache(struct kmem_cache *s)
+{
+#ifndef CONFIG_SLOB
+ return (s->flags & SLAB_KMALLOC);
+#else
+ return false;
+#endif
+}

/* Legal flag mask for kmem_cache_create(), for various configurations */
#define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | \
--
2.34.1


2022-11-23 17:21:16

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH v2 -next 1/2] mm/slb: add is_kmalloc_cache() helper function

Subject should say mm/slab

On 11/23/22 13:31, Feng Tang wrote:
> commit 6edf2576a6cc ("mm/slub: enable debugging memory wasting of
> kmalloc") introduces 'SLAB_KMALLOC' bit specifying whether a
> kmem_cache is a kmalloc cache for slab/slub (slob doesn't have
> dedicated kmalloc caches).
>
> Add a helper inline function for other components like kasan to
> simplify code.
>
> Signed-off-by: Feng Tang <[email protected]>

Acked-by: Vlastimil Babka <[email protected]>

Patch 2 seems to depend on patches in Andrew's tree so it's simpler if he
takes both of these too.

Thanks,
Vlastimil

> ---
> changlog:
>
> since v1:
> * don't use macro for the helper (Andrew Morton)
> * place the inline function in mm/slb.h to solve data structure
> definition issue (Vlastimil Babka)
>
> mm/slab.h | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/mm/slab.h b/mm/slab.h
> index e3b3231af742..0d72fd62751a 100644
> --- a/mm/slab.h
> +++ b/mm/slab.h
> @@ -325,6 +325,14 @@ static inline slab_flags_t kmem_cache_flags(unsigned int object_size,
> }
> #endif
>
> +static inline bool is_kmalloc_cache(struct kmem_cache *s)
> +{
> +#ifndef CONFIG_SLOB
> + return (s->flags & SLAB_KMALLOC);
> +#else
> + return false;
> +#endif
> +}
>
> /* Legal flag mask for kmem_cache_create(), for various configurations */
> #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | \

2022-11-24 02:40:03

by Feng Tang

[permalink] [raw]
Subject: Re: [PATCH v2 -next 1/2] mm/slb: add is_kmalloc_cache() helper function

On Wed, Nov 23, 2022 at 06:03:26PM +0100, Vlastimil Babka wrote:
> Subject should say mm/slab

My bad, thanks for catching this.

> On 11/23/22 13:31, Feng Tang wrote:
> > commit 6edf2576a6cc ("mm/slub: enable debugging memory wasting of
> > kmalloc") introduces 'SLAB_KMALLOC' bit specifying whether a
> > kmem_cache is a kmalloc cache for slab/slub (slob doesn't have
> > dedicated kmalloc caches).
> >
> > Add a helper inline function for other components like kasan to
> > simplify code.
> >
> > Signed-off-by: Feng Tang <[email protected]>
>
> Acked-by: Vlastimil Babka <[email protected]>

Thanks!

> Patch 2 seems to depend on patches in Andrew's tree so it's simpler if he
> takes both of these too.

Yes, patch 2/2 change many places of kasan code.

Hi Andrew,

Could you consider taking these 2 patches to your tree? If you think
it's too close to the merge windown, I can respin after 6.2. thanks!

- Feng

> Thanks,
> Vlastimil
>
> > ---
> > changlog:
> >
> > since v1:
> > * don't use macro for the helper (Andrew Morton)
> > * place the inline function in mm/slb.h to solve data structure
> > definition issue (Vlastimil Babka)
> >
> > mm/slab.h | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/mm/slab.h b/mm/slab.h
> > index e3b3231af742..0d72fd62751a 100644
> > --- a/mm/slab.h
> > +++ b/mm/slab.h
> > @@ -325,6 +325,14 @@ static inline slab_flags_t kmem_cache_flags(unsigned int object_size,
> > }
> > #endif
> >
> > +static inline bool is_kmalloc_cache(struct kmem_cache *s)
> > +{
> > +#ifndef CONFIG_SLOB
> > + return (s->flags & SLAB_KMALLOC);
> > +#else
> > + return false;
> > +#endif
> > +}
> >
> > /* Legal flag mask for kmem_cache_create(), for various configurations */
> > #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | \
>

2022-11-24 11:17:41

by Hyeonggon Yoo

[permalink] [raw]
Subject: Re: [PATCH v2 -next 1/2] mm/slb: add is_kmalloc_cache() helper function

On Wed, Nov 23, 2022 at 08:31:58PM +0800, Feng Tang wrote:
> commit 6edf2576a6cc ("mm/slub: enable debugging memory wasting of
> kmalloc") introduces 'SLAB_KMALLOC' bit specifying whether a
> kmem_cache is a kmalloc cache for slab/slub (slob doesn't have
> dedicated kmalloc caches).
>
> Add a helper inline function for other components like kasan to
> simplify code.
>
> Signed-off-by: Feng Tang <[email protected]>
> ---
> changlog:
>
> since v1:
> * don't use macro for the helper (Andrew Morton)
> * place the inline function in mm/slb.h to solve data structure
> definition issue (Vlastimil Babka)
>
> mm/slab.h | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/mm/slab.h b/mm/slab.h
> index e3b3231af742..0d72fd62751a 100644
> --- a/mm/slab.h
> +++ b/mm/slab.h
> @@ -325,6 +325,14 @@ static inline slab_flags_t kmem_cache_flags(unsigned int object_size,
> }
> #endif
>
> +static inline bool is_kmalloc_cache(struct kmem_cache *s)
> +{
> +#ifndef CONFIG_SLOB
> + return (s->flags & SLAB_KMALLOC);
> +#else
> + return false;
> +#endif
> +}
>
> /* Legal flag mask for kmem_cache_create(), for various configurations */
> #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | \
> --
> 2.34.1

With Vlastimil's comment:

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

--
Thanks,
Hyeonggon