Hi Wander, kernel test robot noticed the following build errors:
[auto build test ERROR on trace/for-next] [also build test ERROR on tip/sched/core linus/master v6.16-rc3 next-20250627] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Wander-Lairson-Costa/trace-preemptirq-reduce-overhead-of-irq_enable-disable-tracepoints/20250626-222438 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/20250626142017.26372-3-wander%40redhat.com patch subject: [PATCH 2/2] tracing/preemptirq: Optimize preempt_disable/enable() tracepoint overhead config: powerpc-randconfig-002-20250628 (https://download.01.org/0day-ci/archive/20250628/[email protected]/config) compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250628/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): In file included from arch/powerpc/kernel/asm-offsets.c:12: In file included from include/linux/compat.h:14: In file included from include/linux/sem.h:5: In file included from include/uapi/linux/sem.h:5: In file included from include/linux/ipc.h:7: In file included from include/linux/rhashtable-types.h:12: In file included from include/linux/alloc_tag.h:11: In file included from include/linux/preempt.h:13: In file included from include/linux/tracepoint-defs.h:11: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: In file included from arch/powerpc/include/asm/cmpxchg.h:755: In file included from include/asm-generic/cmpxchg-local.h:6: >> include/linux/irqflags.h:201:1: error: type specifier missing, defaults to >> 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] 201 | DECLARE_TRACEPOINT(irq_enable); | ^ | int >> include/linux/irqflags.h:201:20: error: a parameter list without types is >> only allowed in a function definition 201 | DECLARE_TRACEPOINT(irq_enable); | ^ include/linux/irqflags.h:202:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] 202 | DECLARE_TRACEPOINT(irq_disable); | ^ | int include/linux/irqflags.h:202:20: error: a parameter list without types is only allowed in a function definition 202 | DECLARE_TRACEPOINT(irq_disable); | ^ >> include/linux/irqflags.h:274:47: error: call to undeclared function >> 'tracepoint_enabled'; ISO C99 and later do not support implicit function >> declarations [-Wimplicit-function-declaration] 274 | DEFINE_LOCK_GUARD_0(irq, local_irq_disable(), local_irq_enable()) | ^ include/linux/irqflags.h:206:7: note: expanded from macro 'local_irq_enable' 206 | if (tracepoint_enabled(irq_enable)) \ | ^ >> include/linux/irqflags.h:274:47: error: use of undeclared identifier >> 'irq_enable' include/linux/irqflags.h:206:26: note: expanded from macro 'local_irq_enable' 206 | if (tracepoint_enabled(irq_enable)) \ | ^ >> include/linux/irqflags.h:274:47: error: use of undeclared identifier >> 'irq_enable' include/linux/irqflags.h:206:26: note: expanded from macro 'local_irq_enable' 206 | if (tracepoint_enabled(irq_enable)) \ | ^ >> include/linux/irqflags.h:274:47: error: use of undeclared identifier >> 'irq_enable' include/linux/irqflags.h:206:26: note: expanded from macro 'local_irq_enable' 206 | if (tracepoint_enabled(irq_enable)) \ | ^ include/linux/irqflags.h:274:26: error: call to undeclared function 'tracepoint_enabled'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 274 | DEFINE_LOCK_GUARD_0(irq, local_irq_disable(), local_irq_enable()) | ^ include/linux/irqflags.h:215:7: note: expanded from macro 'local_irq_disable' 215 | if (tracepoint_enabled(irq_disable) && \ | ^ >> include/linux/irqflags.h:274:26: error: use of undeclared identifier >> 'irq_disable'; did you mean 'was_disabled'? include/linux/irqflags.h:215:26: note: expanded from macro 'local_irq_disable' 215 | if (tracepoint_enabled(irq_disable) && \ | ^ include/linux/irqflags.h:274:26: note: 'was_disabled' declared here include/linux/irqflags.h:213:8: note: expanded from macro 'local_irq_disable' 213 | bool was_disabled = raw_irqs_disabled();\ | ^ >> include/linux/irqflags.h:274:26: error: use of undeclared identifier >> 'irq_disable'; did you mean 'was_disabled'? 274 | DEFINE_LOCK_GUARD_0(irq, local_irq_disable(), local_irq_enable()) | ^ include/linux/irqflags.h:215:26: note: expanded from macro 'local_irq_disable' 215 | if (tracepoint_enabled(irq_disable) && \ | ^ include/linux/irqflags.h:274:26: note: 'was_disabled' declared here include/linux/irqflags.h:213:8: note: expanded from macro 'local_irq_disable' 213 | bool was_disabled = raw_irqs_disabled();\ | ^ >> include/linux/irqflags.h:274:26: error: use of undeclared identifier >> 'irq_disable'; did you mean 'was_disabled'? 274 | DEFINE_LOCK_GUARD_0(irq, local_irq_disable(), local_irq_enable()) | ^ include/linux/irqflags.h:215:26: note: expanded from macro 'local_irq_disable' 215 | if (tracepoint_enabled(irq_disable) && \ | ^ include/linux/irqflags.h:274:26: note: 'was_disabled' declared here include/linux/irqflags.h:213:8: note: expanded from macro 'local_irq_disable' 213 | bool was_disabled = raw_irqs_disabled();\ | ^ include/linux/irqflags.h:277:7: error: call to undeclared function 'tracepoint_enabled'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 277 | local_irq_restore(_T->flags), | ^ include/linux/irqflags.h:230:7: note: expanded from macro 'local_irq_restore' 230 | if (tracepoint_enabled(irq_enable) && \ | ^ include/linux/irqflags.h:277:7: error: use of undeclared identifier 'irq_enable' include/linux/irqflags.h:230:26: note: expanded from macro 'local_irq_restore' 230 | if (tracepoint_enabled(irq_enable) && \ | ^ include/linux/irqflags.h:277:7: error: use of undeclared identifier 'irq_enable' include/linux/irqflags.h:230:26: note: expanded from macro 'local_irq_restore' 230 | if (tracepoint_enabled(irq_enable) && \ | ^ include/linux/irqflags.h:277:7: error: use of undeclared identifier 'irq_enable' include/linux/irqflags.h:230:26: note: expanded from macro 'local_irq_restore' 230 | if (tracepoint_enabled(irq_enable) && \ | ^ include/linux/irqflags.h:276:7: error: call to undeclared function 'tracepoint_enabled'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 276 | local_irq_save(_T->flags), | ^ include/linux/irqflags.h:223:7: note: expanded from macro 'local_irq_save' 223 | if (tracepoint_enabled(irq_disable) && \ | ^ include/linux/irqflags.h:276:7: error: use of undeclared identifier 'irq_disable' include/linux/irqflags.h:223:26: note: expanded from macro 'local_irq_save' 223 | if (tracepoint_enabled(irq_disable) && \ | ^ include/linux/irqflags.h:276:7: error: use of undeclared identifier 'irq_disable' include/linux/irqflags.h:223:26: note: expanded from macro 'local_irq_save' 223 | if (tracepoint_enabled(irq_disable) && \ | ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make[3]: *** [scripts/Makefile.build:98: arch/powerpc/kernel/asm-offsets.s] Error 1 shuffle=1905180499 make[3]: Target 'prepare' not remade because of errors. make[2]: *** [Makefile:1274: prepare0] Error 2 shuffle=1905180499 make[2]: Target 'prepare' not remade because of errors. make[1]: *** [Makefile:248: __sub-make] Error 2 shuffle=1905180499 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:248: __sub-make] Error 2 shuffle=1905180499 make: Target 'prepare' not remade because of errors. vim +/tracepoint_enabled +274 include/linux/irqflags.h 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 200 563d10fd41452f8 Wander Lairson Costa 2025-06-26 @201 DECLARE_TRACEPOINT(irq_enable); 563d10fd41452f8 Wander Lairson Costa 2025-06-26 @202 DECLARE_TRACEPOINT(irq_disable); 563d10fd41452f8 Wander Lairson Costa 2025-06-26 203 de30a2b355ea853 Ingo Molnar 2006-07-03 204 #define local_irq_enable() \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 205 do { \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 @206 if (tracepoint_enabled(irq_enable)) \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 207 trace_hardirqs_on(); \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 208 raw_local_irq_enable(); \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 209 } while (0) 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 210 de30a2b355ea853 Ingo Molnar 2006-07-03 211 #define local_irq_disable() \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 212 do { \ 044d0d6de9f5019 Nicholas Piggin 2020-07-23 213 bool was_disabled = raw_irqs_disabled();\ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 214 raw_local_irq_disable(); \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 215 if (tracepoint_enabled(irq_disable) && \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 216 !was_disabled) \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 217 trace_hardirqs_off(); \ 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 218 } while (0) 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 219 de30a2b355ea853 Ingo Molnar 2006-07-03 220 #define local_irq_save(flags) \ 3f307891ce0e7b0 Steven Rostedt 2008-07-25 221 do { \ 3f307891ce0e7b0 Steven Rostedt 2008-07-25 222 raw_local_irq_save(flags); \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 223 if (tracepoint_enabled(irq_disable) && \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 224 !raw_irqs_disabled_flags(flags)) \ 3f307891ce0e7b0 Steven Rostedt 2008-07-25 225 trace_hardirqs_off(); \ 3f307891ce0e7b0 Steven Rostedt 2008-07-25 226 } while (0) 3f307891ce0e7b0 Steven Rostedt 2008-07-25 227 de30a2b355ea853 Ingo Molnar 2006-07-03 228 #define local_irq_restore(flags) \ de30a2b355ea853 Ingo Molnar 2006-07-03 229 do { \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 230 if (tracepoint_enabled(irq_enable) && \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 231 !raw_irqs_disabled_flags(flags)) \ de30a2b355ea853 Ingo Molnar 2006-07-03 232 trace_hardirqs_on(); \ de30a2b355ea853 Ingo Molnar 2006-07-03 233 raw_local_irq_restore(flags); \ de30a2b355ea853 Ingo Molnar 2006-07-03 234 } while (0) de30a2b355ea853 Ingo Molnar 2006-07-03 235 df9ee29270c11db David Howells 2010-10-07 236 #define safe_halt() \ df9ee29270c11db David Howells 2010-10-07 237 do { \ 563d10fd41452f8 Wander Lairson Costa 2025-06-26 238 if (tracepoint_enabled(irq_enable)) \ df9ee29270c11db David Howells 2010-10-07 239 trace_hardirqs_on(); \ df9ee29270c11db David Howells 2010-10-07 240 raw_safe_halt(); \ df9ee29270c11db David Howells 2010-10-07 241 } while (0) df9ee29270c11db David Howells 2010-10-07 242 df9ee29270c11db David Howells 2010-10-07 243 db2dcb4f91d5fec Jan Beulich 2015-01-20 244 #else /* !CONFIG_TRACE_IRQFLAGS */ df9ee29270c11db David Howells 2010-10-07 245 df9ee29270c11db David Howells 2010-10-07 246 #define local_irq_enable() do { raw_local_irq_enable(); } while (0) df9ee29270c11db David Howells 2010-10-07 247 #define local_irq_disable() do { raw_local_irq_disable(); } while (0) 00b0ed2d4997af6 Peter Zijlstra 2020-08-12 248 #define local_irq_save(flags) do { raw_local_irq_save(flags); } while (0) df9ee29270c11db David Howells 2010-10-07 249 #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0) df9ee29270c11db David Howells 2010-10-07 250 #define safe_halt() do { raw_safe_halt(); } while (0) df9ee29270c11db David Howells 2010-10-07 251 db2dcb4f91d5fec Jan Beulich 2015-01-20 252 #endif /* CONFIG_TRACE_IRQFLAGS */ db2dcb4f91d5fec Jan Beulich 2015-01-20 253 db2dcb4f91d5fec Jan Beulich 2015-01-20 254 #define local_save_flags(flags) raw_local_save_flags(flags) db2dcb4f91d5fec Jan Beulich 2015-01-20 255 db2dcb4f91d5fec Jan Beulich 2015-01-20 256 /* db2dcb4f91d5fec Jan Beulich 2015-01-20 257 * Some architectures don't define arch_irqs_disabled(), so even if either db2dcb4f91d5fec Jan Beulich 2015-01-20 258 * definition would be fine we need to use different ones for the time being db2dcb4f91d5fec Jan Beulich 2015-01-20 259 * to avoid build issues. db2dcb4f91d5fec Jan Beulich 2015-01-20 260 */ db2dcb4f91d5fec Jan Beulich 2015-01-20 261 #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT db2dcb4f91d5fec Jan Beulich 2015-01-20 262 #define irqs_disabled() \ db2dcb4f91d5fec Jan Beulich 2015-01-20 263 ({ \ db2dcb4f91d5fec Jan Beulich 2015-01-20 264 unsigned long _flags; \ db2dcb4f91d5fec Jan Beulich 2015-01-20 265 raw_local_save_flags(_flags); \ db2dcb4f91d5fec Jan Beulich 2015-01-20 266 raw_irqs_disabled_flags(_flags); \ db2dcb4f91d5fec Jan Beulich 2015-01-20 267 }) db2dcb4f91d5fec Jan Beulich 2015-01-20 268 #else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */ db2dcb4f91d5fec Jan Beulich 2015-01-20 269 #define irqs_disabled() raw_irqs_disabled() 40b1f4e5113eafc Michael Neuling 2009-10-22 270 #endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */ de30a2b355ea853 Ingo Molnar 2006-07-03 271 db2dcb4f91d5fec Jan Beulich 2015-01-20 272 #define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags) db2dcb4f91d5fec Jan Beulich 2015-01-20 273 54da6a0924311c7 Peter Zijlstra 2023-05-26 @274 DEFINE_LOCK_GUARD_0(irq, local_irq_disable(), local_irq_enable()) 54da6a0924311c7 Peter Zijlstra 2023-05-26 275 DEFINE_LOCK_GUARD_0(irqsave, 54da6a0924311c7 Peter Zijlstra 2023-05-26 276 local_irq_save(_T->flags), 54da6a0924311c7 Peter Zijlstra 2023-05-26 277 local_irq_restore(_T->flags), 54da6a0924311c7 Peter Zijlstra 2023-05-26 278 unsigned long flags) 54da6a0924311c7 Peter Zijlstra 2023-05-26 279 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
