[PATCH v3 0/2] mm: memcg: improve vmscan tracepoints

From: Dmitry Rokosov
Date: Thu Nov 23 2023 - 14:39:54 EST


The motivation behind this commit is to enhance the traceability and
understanding of memcg events. By integrating the function cgroup_ino()
into the existing memcg tracepoints, this patch series introduces a new
tracepoint template for the begin() and end() events. It utilizes a new
entry field ino to store the cgroup ino, enabling developers to easily
identify the cgroup associated with a specific memcg tracepoint event.

Additionally, this patch series introduces new shrink_memcg tracepoints
to facilitate non-direct memcg reclaim tracing and debugging.

Changes v3 since v2 at [2]:
- use cgroup_ino() instead of cgroup_name() for memcg tracepoints
because cgroup_name() acquires a global rw_lock, which can
potentially slow down the system
- introduce a stub macro for each shrink_memcg tracepoint to avoid
using ifdefs within the common vmscan code."

Changes v2 since v1 at [1]:
- change the position of the "memcg" parameter to ensure backward
compatibility with userspace tools that use memcg tracepoints
- add additional CONFIG_MEMCG ifdefs to prevent the use of memcg
tracepoints when memcg is disabled

Links:
[1] https://lore.kernel.org/all/20231101102837.25205-1-ddrokosov@xxxxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/20231123071945.25811-1-ddrokosov@xxxxxxxxxxxxxxxxx/

Dmitry Rokosov (2):
mm: memcg: print out cgroup ino in the memcg tracepoints
mm: memcg: introduce new event to trace shrink_memcg

include/trace/events/vmscan.h | 95 ++++++++++++++++++++++++++++++-----
mm/vmscan.c | 17 +++++--
2 files changed, 95 insertions(+), 17 deletions(-)

--
2.36.0