Re: [PATCH v5 16/18] mm: remove the __GFP_NO_OBJ_EXT flag

Hao Ge <[email protected]>
Newsgroups dev.linux.lists.linux-rt-devel,org.kernel.vger.linux-kernel,org.kvack.linux-mm
Message-ID <[email protected]>
On 2026/7/3 20:31, Brendan Jackman wrote:
> From: "Vlastimil Babka (SUSE)" <[email protected]>
>
> All users of the flag are converted to SLAB_ALLOC_NO_RECURSE or
> ALLOC_NO_CODETAG (from __GFP_NO_CODETAG which reused the NO_OBJ_EXT bit).
> Free up the flag bit.
>
> Signed-off-by: Vlastimil Babka (SUSE) <[email protected]>
> [Rebased onto __GFP_NO_CODETAG removal]
> Signed-off-by: Brendan Jackman <[email protected]>


Acked-by: Hao Ge <[email protected]>


> ---
>   include/linux/gfp_types.h       |  7 -------
>   include/trace/events/mmflags.h  | 10 +---------
>   tools/include/linux/gfp_types.h |  7 -------
>   3 files changed, 1 insertion(+), 23 deletions(-)
>
> diff --git a/include/linux/gfp_types.h b/include/linux/gfp_types.h
> index 463b551d12d99..190191411009f 100644
> --- a/include/linux/gfp_types.h
> +++ b/include/linux/gfp_types.h
> @@ -55,7 +55,6 @@ enum {
>   #ifdef CONFIG_LOCKDEP
>   	___GFP_NOLOCKDEP_BIT,
>   #endif
> -	___GFP_NO_OBJ_EXT_BIT,
>   	___GFP_LAST_BIT
>   };
>   
> @@ -96,7 +95,6 @@ enum {
>   #else
>   #define ___GFP_NOLOCKDEP	0
>   #endif
> -#define ___GFP_NO_OBJ_EXT       BIT(___GFP_NO_OBJ_EXT_BIT)
>   
>   /*
>    * Physical address zone modifiers (see linux/mmzone.h - low four bits)
> @@ -138,17 +136,12 @@ enum {
>    *
>    * %__GFP_ACCOUNT causes the allocation to be accounted to the active
>    * cgroup context.
> - *
> - * %__GFP_NO_OBJ_EXT causes slab allocation to have no object extension.
> - * mark_obj_codetag_empty() should be called upon freeing for objects allocated
> - * with this flag to indicate that their NULL tags are expected and normal.
>    */
>   #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE)
>   #define __GFP_WRITE	((__force gfp_t)___GFP_WRITE)
>   #define __GFP_HARDWALL   ((__force gfp_t)___GFP_HARDWALL)
>   #define __GFP_THISNODE	((__force gfp_t)___GFP_THISNODE)
>   #define __GFP_ACCOUNT	((__force gfp_t)___GFP_ACCOUNT)
> -#define __GFP_NO_OBJ_EXT   ((__force gfp_t)___GFP_NO_OBJ_EXT)
>   
>   /**
>    * DOC: Watermark modifiers
> diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h
> index a6e5a44c9b429..c1a05ff0feab0 100644
> --- a/include/trace/events/mmflags.h
> +++ b/include/trace/events/mmflags.h
> @@ -54,18 +54,10 @@
>   # define TRACE_GFP_FLAGS_LOCKDEP
>   #endif
>   
> -#ifdef CONFIG_SLAB_OBJ_EXT
> -# define TRACE_GFP_FLAGS_SLAB			\
> -	TRACE_GFP_EM(NO_OBJ_EXT)
> -#else
> -# define TRACE_GFP_FLAGS_SLAB
> -#endif
> -
>   #define TRACE_GFP_FLAGS				\
>   	TRACE_GFP_FLAGS_GENERAL			\
>   	TRACE_GFP_FLAGS_KASAN			\
> -	TRACE_GFP_FLAGS_LOCKDEP			\
> -	TRACE_GFP_FLAGS_SLAB
> +	TRACE_GFP_FLAGS_LOCKDEP
>   
>   #undef TRACE_GFP_EM
>   #define TRACE_GFP_EM(a) TRACE_DEFINE_ENUM(___GFP_##a##_BIT);
> diff --git a/tools/include/linux/gfp_types.h b/tools/include/linux/gfp_types.h
> index 6c75df30a281d..a93b8bd200b76 100644
> --- a/tools/include/linux/gfp_types.h
> +++ b/tools/include/linux/gfp_types.h
> @@ -55,7 +55,6 @@ enum {
>   #ifdef CONFIG_LOCKDEP
>   	___GFP_NOLOCKDEP_BIT,
>   #endif
> -	___GFP_NO_OBJ_EXT_BIT,
>   	___GFP_LAST_BIT
>   };
>   
> @@ -96,7 +95,6 @@ enum {
>   #else
>   #define ___GFP_NOLOCKDEP	0
>   #endif
> -#define ___GFP_NO_OBJ_EXT       BIT(___GFP_NO_OBJ_EXT_BIT)
>   
>   /*
>    * Physical address zone modifiers (see linux/mmzone.h - low four bits)
> @@ -137,17 +135,12 @@ enum {
>    * node with no fallbacks or placement policy enforcements.
>    *
>    * %__GFP_ACCOUNT causes the allocation to be accounted to kmemcg.
> - *
> - * %__GFP_NO_OBJ_EXT causes slab allocation to have no object extension.
> - * mark_obj_codetag_empty() should be called upon freeing for objects allocated
> - * with this flag to indicate that their NULL tags are expected and normal.
>    */
>   #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE)
>   #define __GFP_WRITE	((__force gfp_t)___GFP_WRITE)
>   #define __GFP_HARDWALL   ((__force gfp_t)___GFP_HARDWALL)
>   #define __GFP_THISNODE	((__force gfp_t)___GFP_THISNODE)
>   #define __GFP_ACCOUNT	((__force gfp_t)___GFP_ACCOUNT)
> -#define __GFP_NO_OBJ_EXT   ((__force gfp_t)___GFP_NO_OBJ_EXT)
>   
>   /**
>    * DOC: Watermark modifiers
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.