On Fri, May 08, 2026 at 06:29:32PM -0700, Andrew Morton wrote:
>
> Applying this to 7.1-rc1, my x86_64 allmodconfig blew up.
>
>
>
> In file included from ./include/trace/define_trace.h:132,
> from ./include/trace/events/vmscan.h:602,
> from mm/vmscan.c:72:
> ./include/trace/events/vmscan.h: In function
> 'trace_raw_output_mm_vmscan_write_folio':
> ./include/trace/events/vmscan.h:358:19: error: format '%p' expects argument
> of type 'void *', but argument 3 has type 'long unsigned int'
> [-Werror=format=]
> 358 | TP_printk("folio=%p lru=%s",
> | ^~~~~~~~~~~~~~~~~
> ./include/trace/trace_events.h:219:34: note: in definition of macro
> 'DECLARE_EVENT_CLASS'
> 219 | trace_event_printf(iter, print);
> \
> | ^~~~~
> ./include/trace/trace_events.h:45:30: note: in expansion of macro 'PARAMS'
> 45 | PARAMS(print)); \
> | ^~~~~~
> ./include/trace/events/vmscan.h:342:1: note: in expansion of macro
> 'TRACE_EVENT'
> 342 | TRACE_EVENT(mm_vmscan_write_folio,
> | ^~~~~~~~~~~
> ./include/trace/events/vmscan.h:358:9: note: in expansion of macro 'TP_printk'
> 358 | TP_printk("folio=%p lru=%s",
> | ^~~~~~~~~
> In file included from ./include/trace/trace_events.h:256:
> ./include/trace/events/vmscan.h:358:27: note: format string is defined here
> 358 | TP_printk("folio=%p lru=%s",
> | ~^
> | |
> | void *
> | %ld
> ./include/trace/events/vmscan.h: In function
> 'do_trace_event_raw_event_mm_vmscan_write_folio':
> ./include/trace/events/vmscan.h:354:32: error: assignment to 'long unsigned
> int' from 'struct folio *' makes integer from pointer without a cast
> [-Wint-conversion]
> 354 | __entry->folio = folio;
> | ^
> ./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:342:1: note: in expansion of macro
> 'TRACE_EVENT'
> 342 | TRACE_EVENT(mm_vmscan_write_folio,
> | ^~~~~~~~~~~
> ./include/trace/events/vmscan.h:353:9: note: in expansion of macro
> 'TP_fast_assign'
> 353 | TP_fast_assign(
> | ^~~~~~~~~~~~~~
> In file included from ./include/trace/define_trace.h:133:
> ./include/trace/events/vmscan.h: In function
> 'do_perf_trace_mm_vmscan_write_folio':
> ./include/trace/events/vmscan.h:354:32: error: assignment to 'long unsigned
> int' from 'struct folio *' makes integer from pointer without a cast
> [-Wint-conversion]
> 354 | __entry->folio = folio;
> | ^
> ./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:342:1: note: in expansion of macro
> 'TRACE_EVENT'
> 342 | TRACE_EVENT(mm_vmscan_write_folio,
> | ^~~~~~~~~~~
> ./include/trace/events/vmscan.h:353:9: note: in expansion of macro
> 'TP_fast_assign'
> 353 | TP_fast_assign(
> | ^~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> make[3]: *** [scripts/Makefile.build:289: mm/vmscan.o] Error 1
> make[2]: *** [scripts/Makefile.build:548: mm] Error 2
> make[1]: *** [/usr/src/25/Makefile:2141: .] Error 2
> make: *** [Makefile:248: __sub-make] Error 2
>
Sorry, I ignored the rookie mistake which I built pass with the
aarch64-linux-gnu toolchain.
Could you please apply the following minor fix change based on this patch?
--- a/include/trace/events/vmscan.h
+++ b/include/trace/events/vmscan.h
@@ -346,7 +346,7 @@ TRACE_EVENT(mm_vmscan_write_folio,
TP_ARGS(folio),
TP_STRUCT__entry(
- __field(unsigned long, folio)
+ __field(struct folio *, folio)
__field(int, lru)
),