Re: [PATCH RFC v3 2/7] mm/vmscan: move vmscan tracepoints to a local header

From: Steven Rostedt

Date: Wed Oct 14 2026 - 12:49:52 EST


On Tue, 13 Oct 2026 21:13:04 +0800
Ridong Chen <ridong.chen@xxxxxxxxx> wrote:

> From: Ridong Chen <chenridong@xxxxxxxxxx>
>
> Move include/trace/events/vmscan.h to mm/trace_vmscan.h so that the
> tracepoints can be extended to reference vmscan-internal structures such
> as struct scan_control, which is not visible outside mm/. This mirrors
> what several other subsystems already do with their trace headers (e.g.
> arch/x86/kvm/trace.h, drivers/gpu/drm/drm_trace.h, net/xfrm/trace_iptfs.h).
> As they do, use a relative TRACE_INCLUDE_PATH so that no Makefile change
> is needed.
>
> No functional change.
>
> Assisted-by: LLM
> Signed-off-by: Ridong Chen <chenridong@xxxxxxxxxx>
> ---
> MAINTAINERS | 2 ++
> mm/shrinker.c | 2 +-
> include/trace/events/vmscan.h => mm/trace_vmscan.h | 4 ++++
> mm/vmscan.c | 2 +-
> 4 files changed, 8 insertions(+), 2 deletions(-)
> rename include/trace/events/vmscan.h => mm/trace_vmscan.h (99%)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c5519d67b6f4..80d2a9dd0525 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -17575,6 +17575,7 @@ F: Documentation/admin-guide/mm/multigen_lru.rst
> F: Documentation/mm/multigen_lru.rst
> F: include/linux/mm_inline.h
> F: include/linux/mmzone.h
> +F: mm/trace_vmscan.h
> F: mm/vmscan.c
> F: mm/workingset.c
>
> @@ -17722,6 +17723,7 @@ R: Shakeel Butt <shakeel.butt@xxxxxxxxx>
> R: Lorenzo Stoakes <ljs@xxxxxxxxxx>
> L: linux-mm@xxxxxxxxx
> S: Maintained
> +F: mm/trace_vmscan.h
> F: mm/vmscan.c
> F: mm/workingset.c
>
> diff --git a/mm/shrinker.c b/mm/shrinker.c
> index 7ec2a9704f6f..3c3e87c4b61c 100644
> --- a/mm/shrinker.c
> +++ b/mm/shrinker.c
> @@ -3,7 +3,7 @@
> #include <linux/rwsem.h>
> #include <linux/shrinker.h>
> #include <linux/rculist.h>
> -#include <trace/events/vmscan.h>
> +#include "trace_vmscan.h"
>
> #include "internal.h"
>
> diff --git a/include/trace/events/vmscan.h b/mm/trace_vmscan.h
> similarity index 99%
> rename from include/trace/events/vmscan.h
> rename to mm/trace_vmscan.h
> index 8a872990b4be..c5d824fef554 100644
> --- a/include/trace/events/vmscan.h
> +++ b/mm/trace_vmscan.h
> @@ -648,4 +648,8 @@ TRACE_EVENT(mm_vmscan_kswapd_clear_hopeless,
> #endif /* _TRACE_VMSCAN_H */
>
> /* This part must be outside protection */
> +#undef TRACE_INCLUDE_FILE
> +#undef TRACE_INCLUDE_PATH
> +#define TRACE_INCLUDE_PATH ../../mm

The proper way to do this is to have:

#define TRACE_INCLUDE_PATH .

And update the Makefile with:

CFLAGS_vmscan.o := -I$(src)

-- Steve



> +#define TRACE_INCLUDE_FILE trace_vmscan
> #include <trace/define_trace.h>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 29b31446fc11..6207dad9e644 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -71,7 +71,7 @@
> #include "swap.h"
>
> #define CREATE_TRACE_POINTS
> -#include <trace/events/vmscan.h>
> +#include "trace_vmscan.h"
>
> struct scan_control {
> /* How many pages shrink_list() should reclaim */