[PATCH RFC 01/12] mm/slab: skip kfence objects in allocation profiling
"Vlastimil Babka (SUSE)" <[email protected]>
| Newsgroups | org.kernel.vger.cgroups,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
struct kfence_metadata only has obj_exts with CONFIG_MEMCG. If it's enabled, it does also work for allocation profiling, but there's little value recording tags for KFENCE objects. Furthermore it would complicate the upcoming changes, so just skip them in the slab hooks. Signed-off-by: Vlastimil Babka (SUSE) <[email protected]> --- mm/slub.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/slub.c b/mm/slub.c index 0337e60db5ac..a4be70d080fb 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2352,6 +2352,9 @@ __alloc_tagging_slab_alloc_hook(struct kmem_cache *s, void *object, gfp_t flags, if (alloc_flags & SLAB_ALLOC_NO_RECURSE) return; + if (is_kfence_address(object)) + return; + slab = virt_to_slab(object); obj_exts = prepare_slab_obj_exts_hook(s, slab, flags, alloc_flags, object); /* @@ -2399,6 +2402,9 @@ __alloc_tagging_slab_free_hook(struct kmem_cache *s, struct slab *slab, void **p for (i = 0; i < objects; i++) { unsigned int off = obj_to_index(s, slab, p[i]); + if (is_kfence_address(p[i])) + continue; + alloc_tag_sub(&slab_obj_ext(slab, obj_exts, off)->ref, s->size); } put_slab_obj_exts(obj_exts); -- 2.55.0