[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202506280524.R4BJehMT-lkp@intel.com>
Date: Sat, 28 Jun 2025 05:59:47 +0800
From: kernel test robot <lkp@...el.com>
To: Wander Lairson Costa <wander@...hat.com>,
Ingo Molnar <mingo@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>,
Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
Valentin Schneider <vschneid@...hat.com>,
Masami Hiramatsu <mhiramat@...nel.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Thomas Gleixner <tglx@...utronix.de>,
Boqun Feng <boqun.feng@...il.com>,
David Woodhouse <dwmw@...zon.co.uk>, linux-kernel@...r.kernel.org,
linux-trace-kernel@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Clark Williams <williams@...hat.com>,
Gabriele Monaco <gmonaco@...hat.com>
Subject: Re: [PATCH 2/2] tracing/preemptirq: Optimize
preempt_disable/enable() tracepoint overhead
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/202506280524.R4BJehMT-lkp@intel.com/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/202506280524.R4BJehMT-lkp@intel.com/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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506280524.R4BJehMT-lkp@intel.com/
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
Powered by blists - more mailing lists