Subject: linux-next: build failure after merge of the mm-unstable tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 7 Jan 2026 11:16:57 +1100

Hi all,

After merging the mm-unstable tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

In file included from include/trace/define_trace.h:132,
                 from include/trace/events/vmscan.h:569,
                 from mm/vmscan.c:73:
include/trace/events/vmscan.h: In function 'do_trace_event_raw_event_mm_shrink_slab_start':
include/trace/events/vmscan.h:248:68: error: invalid use of undefined type 'struct mem_cgroup'
  248 |                 __entry->memcg_id = sc->memcg ? cgroup_id(sc->memcg->css.cgroup) : 0;
      |                                                                    ^~
include/trace/trace_events.h:427:11: note: in definition of macro '__DECLARE_EVENT_CLASS'
  427 |         { assign; }                                                     \
      |           ^~~~~~
include/trace/trace_events.h:435:23: note: in expansion of macro 'PARAMS'
  435 |                       PARAMS(assign), PARAMS(print))                    \
      |                       ^~~~~~
include/trace/trace_events.h:40:9: note: in expansion of macro 'DECLARE_EVENT_CLASS'
   40 |         DECLARE_EVENT_CLASS(name,                              \
      |         ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:44:30: note: in expansion of macro 'PARAMS'
   44 |                              PARAMS(assign),                   \
      |                              ^~~~~~
include/trace/events/vmscan.h:214:1: note: in expansion of macro 'TRACE_EVENT'
  214 | TRACE_EVENT(mm_shrink_slab_start,
      | ^~~~~~~~~~~
include/trace/events/vmscan.h:237:9: note: in expansion of macro 'TP_fast_assign'
  237 |         TP_fast_assign(
      |         ^~~~~~~~~~~~~~
include/trace/events/vmscan.h: In function 'do_trace_event_raw_event_mm_shrink_slab_end':
include/trace/events/vmscan.h:293:56: error: invalid use of undefined type 'struct mem_cgroup'
  293 |                 __entry->memcg_id = cgroup_id(sc->memcg->css.cgroup);
      |                                                        ^~
include/trace/trace_events.h:427:11: note: in definition of macro '__DECLARE_EVENT_CLASS'
  427 |         { assign; }                                                     \
      |           ^~~~~~
include/trace/trace_events.h:435:23: note: in expansion of macro 'PARAMS'
  435 |                       PARAMS(assign), PARAMS(print))                    \
      |                       ^~~~~~
include/trace/trace_events.h:40:9: note: in expansion of macro 'DECLARE_EVENT_CLASS'
   40 |         DECLARE_EVENT_CLASS(name,                              \
      |         ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:44:30: note: in expansion of macro 'PARAMS'
   44 |                              PARAMS(assign),                   \
      |                              ^~~~~~
include/trace/events/vmscan.h:266:1: note: in expansion of macro 'TRACE_EVENT'
  266 | TRACE_EVENT(mm_shrink_slab_end,
      | ^~~~~~~~~~~
include/trace/events/vmscan.h:285:9: note: in expansion of macro 'TP_fast_assign'
  285 |         TP_fast_assign(
      |         ^~~~~~~~~~~~~~
In file included from include/trace/define_trace.h:133:
include/trace/events/vmscan.h: In function 'do_perf_trace_mm_shrink_slab_start':
include/trace/events/vmscan.h:248:68: error: invalid use of undefined type 'struct mem_cgroup'
  248 |                 __entry->memcg_id = sc->memcg ? cgroup_id(sc->memcg->css.cgroup) : 0;
      |                                                                    ^~
include/trace/perf.h:51:11: note: in definition of macro '__DECLARE_EVENT_CLASS'
   51 |         { assign; }                                                     \
      |           ^~~~~~
include/trace/perf.h:67:23: note: in expansion of macro 'PARAMS'
   67 |                       PARAMS(assign), PARAMS(print))                    \
      |                       ^~~~~~
include/trace/trace_events.h:40:9: note: in expansion of macro 'DECLARE_EVENT_CLASS'
   40 |         DECLARE_EVENT_CLASS(name,                              \
      |         ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:44:30: note: in expansion of macro 'PARAMS'
   44 |                              PARAMS(assign),                   \
      |                              ^~~~~~
include/trace/events/vmscan.h:214:1: note: in expansion of macro 'TRACE_EVENT'
  214 | TRACE_EVENT(mm_shrink_slab_start,
      | ^~~~~~~~~~~
include/trace/events/vmscan.h:237:9: note: in expansion of macro 'TP_fast_assign'
  237 |         TP_fast_assign(
      |         ^~~~~~~~~~~~~~
include/trace/events/vmscan.h: In function 'do_perf_trace_mm_shrink_slab_end':
include/trace/events/vmscan.h:293:56: error: invalid use of undefined type 'struct mem_cgroup'
  293 |                 __entry->memcg_id = cgroup_id(sc->memcg->css.cgroup);
      |                                                        ^~
include/trace/perf.h:51:11: note: in definition of macro '__DECLARE_EVENT_CLASS'
   51 |         { assign; }                                                     \
      |           ^~~~~~
include/trace/perf.h:67:23: note: in expansion of macro 'PARAMS'
   67 |                       PARAMS(assign), PARAMS(print))                    \
      |                       ^~~~~~
include/trace/trace_events.h:40:9: note: in expansion of macro 'DECLARE_EVENT_CLASS'
   40 |         DECLARE_EVENT_CLASS(name,                              \
      |         ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:44:30: note: in expansion of macro 'PARAMS'
   44 |                              PARAMS(assign),                   \
      |                              ^~~~~~
include/trace/events/vmscan.h:266:1: note: in expansion of macro 'TRACE_EVENT'
  266 | TRACE_EVENT(mm_shrink_slab_end,
      | ^~~~~~~~~~~
include/trace/events/vmscan.h:285:9: note: in expansion of macro 'TP_fast_assign'
  285 |         TP_fast_assign(
      |         ^~~~~~~~~~~~~~

Caused by commit

  6093cd0a2a93 ("mm: vmscan: add cgroup IDs to vmscan tracepoints")

$ grep MEMCG .config
# CONFIG_MEMCG is not set

I have applied the following hack for today.

From: Stephen Rothwell <[email-masked]>
Date: Wed, 7 Jan 2026 10:38:50 +1100
Subject: [PATCH] fix up for "mm: vmscan: add cgroup IDs to vmscan tracepoints"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 include/trace/events/vmscan.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h
index d438abfa03eb..6a8ec045ae58 100644
--- a/include/trace/events/vmscan.h
+++ b/include/trace/events/vmscan.h
@@ -245,7 +245,11 @@ TRACE_EVENT(mm_shrink_slab_start,
 		__entry->priority = priority;
 		__entry->nid = sc->nid;
 		__entry->pid = current->pid;
+#ifdef CONFIG_MEMCG
 		__entry->memcg_id = sc->memcg ? cgroup_id(sc->memcg->css.cgroup) : 0;
+#else
+		__entry->memcg_id = 0;
+#endif
 	),
 
 	TP_printk("%pS %p: nid: %d pid: %d memcg_id: %u objects to shrink %ld gfp_flags %s cache items %ld delta %lld total_scan %ld priority %d %s",
@@ -290,7 +294,11 @@ TRACE_EVENT(mm_shrink_slab_end,
 		__entry->nid = sc->nid;
 		__entry->retval = shrinker_retval;
 		__entry->pid = current->pid;
+#ifdef CONFIG_MEMCG
 		__entry->memcg_id = cgroup_id(sc->memcg->css.cgroup);
+#else
+		__entry->memcg_id = 0;
+#endif
 	),
 
 	TP_printk("%pS %p: nid: %d pid: %d memcg_id: %u unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d %s",
-- 
2.52.0

-- 
Cheers,
Stephen Rothwell