* [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
@ 2026-02-24 16:52 Suren Baghdasaryan
2026-02-24 18:42 ` kernel test robot
2026-02-24 18:53 ` kernel test robot
0 siblings, 2 replies; 4+ messages in thread
From: Suren Baghdasaryan @ 2026-02-24 16:52 UTC (permalink / raw)
To: akpm
Cc: vbabka, harry.yoo, 00107082, cl, rientjes, roman.gushchin,
linux-mm, linux-kernel, Suren Baghdasaryan
alloc_empty_sheaf() allocates sheafs from SLAB_KMALLOC caches using
__GFP_NO_OBJ_EXT to avoid recursion, however it does not mark their
allocation tags empty before freeing, which results in a warning when
CONFIG_MEM_ALLOC_PROFILING_DEBUG is set. Fix this by marking allocation
tags for such allocations as empty.
Reported-by: David Wang <00107082@163.com>
Closes: https://lore.kernel.org/all/20260223155128.3849-1-00107082@163.com/
Analyzed-by: Harry Yoo <harry.yoo@oracle.com>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
---
mm/slab.h | 4 ++--
mm/slub.c | 17 ++++++++++-------
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/mm/slab.h b/mm/slab.h
index 71c7261bf822..f6ef862b60ef 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -290,14 +290,14 @@ static inline void *nearest_obj(struct kmem_cache *cache,
/* Determine object index from a given position */
static inline unsigned int __obj_to_index(const struct kmem_cache *cache,
- void *addr, void *obj)
+ void *addr, const void *obj)
{
return reciprocal_divide(kasan_reset_tag(obj) - addr,
cache->reciprocal_size);
}
static inline unsigned int obj_to_index(const struct kmem_cache *cache,
- const struct slab *slab, void *obj)
+ const struct slab *slab, const void *obj)
{
if (is_kfence_address(obj))
return 0;
diff --git a/mm/slub.c b/mm/slub.c
index 862642c165ed..3ddbe654cd56 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2041,18 +2041,18 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node,
#ifdef CONFIG_MEM_ALLOC_PROFILING_DEBUG
-static inline void mark_objexts_empty(struct slabobj_ext *obj_exts)
+static inline void mark_objexts_empty(const void *obj)
{
- struct slab *obj_exts_slab;
+ struct slab *obj_slab;
unsigned long slab_exts;
- obj_exts_slab = virt_to_slab(obj_exts);
- slab_exts = slab_obj_exts(obj_exts_slab);
+ obj_slab = virt_to_slab(obj);
+ slab_exts = slab_obj_exts(obj_slab);
if (slab_exts) {
get_slab_obj_exts(slab_exts);
- unsigned int offs = obj_to_index(obj_exts_slab->slab_cache,
- obj_exts_slab, obj_exts);
- struct slabobj_ext *ext = slab_obj_ext(obj_exts_slab,
+ unsigned int offs = obj_to_index(obj_slab->slab_cache,
+ obj_slab, obj);
+ struct slabobj_ext *ext = slab_obj_ext(obj_slab,
slab_exts, offs);
if (unlikely(is_codetag_empty(&ext->ref))) {
@@ -2783,6 +2783,9 @@ static inline struct slab_sheaf *alloc_empty_sheaf(struct kmem_cache *s,
static void free_empty_sheaf(struct kmem_cache *s, struct slab_sheaf *sheaf)
{
+ if (s->flags & SLAB_KMALLOC)
+ mark_objexts_empty(sheaf);
+
kfree(sheaf);
stat(s, SHEAF_FREE);
base-commit: 7dff99b354601dd01829e1511711846e04340a69
--
2.53.0.371.g1d285c8824-goog
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
2026-02-24 16:52 [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT Suren Baghdasaryan
@ 2026-02-24 18:42 ` kernel test robot
2026-02-24 18:53 ` kernel test robot
1 sibling, 0 replies; 4+ messages in thread
From: kernel test robot @ 2026-02-24 18:42 UTC (permalink / raw)
To: Suren Baghdasaryan, akpm
Cc: oe-kbuild-all, vbabka, harry.yoo, 00107082, cl, rientjes,
roman.gushchin, linux-mm, linux-kernel, Suren Baghdasaryan
Hi Suren,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7dff99b354601dd01829e1511711846e04340a69]
url: https://github.com/intel-lab-lkp/linux/commits/Suren-Baghdasaryan/mm-slab-mark-alloc-tags-empty-for-sheafs-allocated-with-__GFP_NO_OBJ_EXT/20260225-005422
base: 7dff99b354601dd01829e1511711846e04340a69
patch link: https://lore.kernel.org/r/20260224165250.1322946-1-surenb%40google.com
patch subject: [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
config: nios2-allnoconfig (https://download.01.org/0day-ci/archive/20260225/202602250249.E8I3P4Ig-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260225/202602250249.E8I3P4Ig-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602250249.E8I3P4Ig-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/slub.c: In function 'free_empty_sheaf':
>> mm/slub.c:2787:17: error: implicit declaration of function 'mark_objexts_empty' [-Werror=implicit-function-declaration]
2787 | mark_objexts_empty(sheaf);
| ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/mark_objexts_empty +2787 mm/slub.c
2783
2784 static void free_empty_sheaf(struct kmem_cache *s, struct slab_sheaf *sheaf)
2785 {
2786 if (s->flags & SLAB_KMALLOC)
> 2787 mark_objexts_empty(sheaf);
2788
2789 kfree(sheaf);
2790
2791 stat(s, SHEAF_FREE);
2792 }
2793
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
2026-02-24 16:52 [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT Suren Baghdasaryan
2026-02-24 18:42 ` kernel test robot
@ 2026-02-24 18:53 ` kernel test robot
2026-02-24 21:14 ` Suren Baghdasaryan
1 sibling, 1 reply; 4+ messages in thread
From: kernel test robot @ 2026-02-24 18:53 UTC (permalink / raw)
To: Suren Baghdasaryan, akpm
Cc: llvm, oe-kbuild-all, vbabka, harry.yoo, 00107082, cl, rientjes,
roman.gushchin, linux-mm, linux-kernel, Suren Baghdasaryan
Hi Suren,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7dff99b354601dd01829e1511711846e04340a69]
url: https://github.com/intel-lab-lkp/linux/commits/Suren-Baghdasaryan/mm-slab-mark-alloc-tags-empty-for-sheafs-allocated-with-__GFP_NO_OBJ_EXT/20260225-005422
base: 7dff99b354601dd01829e1511711846e04340a69
patch link: https://lore.kernel.org/r/20260224165250.1322946-1-surenb%40google.com
patch subject: [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20260225/202602250250.n38q74JK-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260225/202602250250.n38q74JK-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602250250.n38q74JK-lkp@intel.com/
All errors (new ones prefixed by >>):
>> mm/slub.c:2787:3: error: call to undeclared function 'mark_objexts_empty'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
2787 | mark_objexts_empty(sheaf);
| ^
1 error generated.
vim +/mark_objexts_empty +2787 mm/slub.c
2783
2784 static void free_empty_sheaf(struct kmem_cache *s, struct slab_sheaf *sheaf)
2785 {
2786 if (s->flags & SLAB_KMALLOC)
> 2787 mark_objexts_empty(sheaf);
2788
2789 kfree(sheaf);
2790
2791 stat(s, SHEAF_FREE);
2792 }
2793
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
2026-02-24 18:53 ` kernel test robot
@ 2026-02-24 21:14 ` Suren Baghdasaryan
0 siblings, 0 replies; 4+ messages in thread
From: Suren Baghdasaryan @ 2026-02-24 21:14 UTC (permalink / raw)
To: kernel test robot
Cc: akpm, llvm, oe-kbuild-all, vbabka, harry.yoo, 00107082, cl,
rientjes, roman.gushchin, linux-mm, linux-kernel
On Tue, Feb 24, 2026 at 10:54 AM kernel test robot <lkp@intel.com> wrote:
>
> Hi Suren,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on 7dff99b354601dd01829e1511711846e04340a69]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Suren-Baghdasaryan/mm-slab-mark-alloc-tags-empty-for-sheafs-allocated-with-__GFP_NO_OBJ_EXT/20260225-005422
> base: 7dff99b354601dd01829e1511711846e04340a69
> patch link: https://lore.kernel.org/r/20260224165250.1322946-1-surenb%40google.com
> patch subject: [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT
> config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20260225/202602250250.n38q74JK-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260225/202602250250.n38q74JK-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202602250250.n38q74JK-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> >> mm/slub.c:2787:3: error: call to undeclared function 'mark_objexts_empty'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> 2787 | mark_objexts_empty(sheaf);
> | ^
> 1 error generated.
Thanks! In a hurry to post the fix I forgot to update the
mark_objexts_empty() definition for !CONFIG_MEM_ALLOC_PROFILING_DEBUG.
I'll post a fixed version shortly.
>
>
> vim +/mark_objexts_empty +2787 mm/slub.c
>
> 2783
> 2784 static void free_empty_sheaf(struct kmem_cache *s, struct slab_sheaf *sheaf)
> 2785 {
> 2786 if (s->flags & SLAB_KMALLOC)
> > 2787 mark_objexts_empty(sheaf);
> 2788
> 2789 kfree(sheaf);
> 2790
> 2791 stat(s, SHEAF_FREE);
> 2792 }
> 2793
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-02-24 21:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-24 16:52 [PATCH 1/1] mm/slab: mark alloc tags empty for sheafs allocated with __GFP_NO_OBJ_EXT Suren Baghdasaryan
2026-02-24 18:42 ` kernel test robot
2026-02-24 18:53 ` kernel test robot
2026-02-24 21:14 ` Suren Baghdasaryan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox