lib: add codetag reference into slabobj_ext

To store code tag for every slab object, a codetag reference is embedded
into slabobj_ext when CONFIG_MEM_ALLOC_PROFILING=y.

Link: https://lkml.kernel.org/r/20240321163705.3067592-23-surenb@google.com
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Co-developed-by: Kent Overstreet <kent.overstreet@linux.dev>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Tested-by: Kees Cook <keescook@chromium.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: Andreas Hindborg <a.hindborg@samsung.com>
Cc: Benno Lossin <benno.lossin@proton.me>
Cc: "Björn Roy Baron" <bjorn3_gh@protonmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Gary Guo <gary@garyguo.net>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Wedson Almeida Filho <wedsonaf@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Suren Baghdasaryan
2024-03-21 09:36:44 -07:00
committed by Andrew Morton
parent 26865a1bfa
commit c789b5fe38
2 changed files with 6 additions and 0 deletions

View File

@ -1653,7 +1653,12 @@ unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order,
* if MEMCG_DATA_OBJEXTS is set. * if MEMCG_DATA_OBJEXTS is set.
*/ */
struct slabobj_ext { struct slabobj_ext {
#ifdef CONFIG_MEMCG_KMEM
struct obj_cgroup *objcg; struct obj_cgroup *objcg;
#endif
#ifdef CONFIG_MEM_ALLOC_PROFILING
union codetag_ref ref;
#endif
} __aligned(8); } __aligned(8);
static inline void __inc_lruvec_kmem_state(void *p, enum node_stat_item idx) static inline void __inc_lruvec_kmem_state(void *p, enum node_stat_item idx)

View File

@ -979,6 +979,7 @@ config MEM_ALLOC_PROFILING
depends on !DEBUG_FORCE_WEAK_PER_CPU depends on !DEBUG_FORCE_WEAK_PER_CPU
select CODE_TAGGING select CODE_TAGGING
select PAGE_EXTENSION select PAGE_EXTENSION
select SLAB_OBJ_EXT
help help
Track allocation source code and record total allocation size Track allocation source code and record total allocation size
initiated at that code location. The mechanism can be used to track initiated at that code location. The mechanism can be used to track