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)
        ),


Reply via email to