* [PATCH v4 0/2] tracing: Add an option to show symbols in _text+offset for function profiler
@ 2025-10-17 16:15 Masami Hiramatsu (Google)
2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google)
2025-10-17 16:15 ` [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google)
0 siblings, 2 replies; 9+ messages in thread
From: Masami Hiramatsu (Google) @ 2025-10-17 16:15 UTC (permalink / raw)
To: Steven Rostedt
Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel,
linux-trace-kernel
Hi,
This series implements an option to show symbols in _text+OFFSET
format instead of symbol name in the function profiler.
This is the 4th version, the previous one is here;
https://lore.kernel.org/all/175918528341.65920.10238038992631012350.stgit@devnote2/
This version uses enum ... : type {} syntax [1/2].
Thank you,
---
Masami Hiramatsu (Google) (2):
tracing: Allow tracer to add more than 32 options
tracing: Add an option to show symbols in _text+offset for function profiler
kernel/trace/ftrace.c | 26 +++++++++++++++++++++++++-
kernel/trace/trace.c | 22 ++++++++++++----------
kernel/trace/trace.h | 25 +++++++++++++++++--------
kernel/trace/trace_irqsoff.c | 2 +-
kernel/trace/trace_sched_wakeup.c | 2 +-
5 files changed, 56 insertions(+), 21 deletions(-)
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options 2025-10-17 16:15 [PATCH v4 0/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google) @ 2025-10-17 16:15 ` Masami Hiramatsu (Google) 2025-10-18 10:10 ` kernel test robot ` (3 more replies) 2025-10-17 16:15 ` [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google) 1 sibling, 4 replies; 9+ messages in thread From: Masami Hiramatsu (Google) @ 2025-10-17 16:15 UTC (permalink / raw) To: Steven Rostedt Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel From: Masami Hiramatsu (Google) <mhiramat@kernel.org> Since enum trace_iterator_flags is 32bit, the max number of the option flags is limited to 32 and it is fully used now. To add a new option, we need to expand it. Use enum ... : uint64_t {...} syntax which is introduced by C++11 and GCC/Clang extensions. Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> --- Changes in v4: - Use enum ... : type {} instead of const variables. Changes in v3: - Make TRACE_ITER_* to global. --- kernel/trace/trace.c | 17 +++++++++-------- kernel/trace/trace.h | 14 +++++++------- kernel/trace/trace_irqsoff.c | 2 +- kernel/trace/trace_sched_wakeup.c | 2 +- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 4283ed4e8f59..2b3fe0a30c7d 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -5144,7 +5144,7 @@ static int tracing_trace_options_show(struct seq_file *m, void *v) trace_opts = tr->current_trace->flags->opts; for (i = 0; trace_options[i]; i++) { - if (tr->trace_flags & (1 << i)) + if (tr->trace_flags & (1ULL << i)) seq_printf(m, "%s\n", trace_options[i]); else seq_printf(m, "no%s\n", trace_options[i]); @@ -5197,7 +5197,7 @@ static int set_tracer_option(struct trace_array *tr, char *cmp, int neg) } /* Some tracers require overwrite to stay enabled */ -int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) +int trace_keep_overwrite(struct tracer *tracer, u64 mask, int set) { if (tracer->enabled && (mask & TRACE_ITER_OVERWRITE) && !set) return -1; @@ -5205,7 +5205,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) return 0; } -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled) +int set_tracer_flag(struct trace_array *tr, u64 mask, int enabled) { if ((mask == TRACE_ITER_RECORD_TGID) || (mask == TRACE_ITER_RECORD_CMD) || @@ -5307,7 +5307,7 @@ int trace_set_options(struct trace_array *tr, char *option) if (ret < 0) ret = set_tracer_option(tr, cmp, neg); else - ret = set_tracer_flag(tr, 1 << ret, !neg); + ret = set_tracer_flag(tr, 1ULL << ret, !neg); mutex_unlock(&trace_types_lock); mutex_unlock(&event_mutex); @@ -9119,7 +9119,7 @@ trace_options_core_read(struct file *filp, char __user *ubuf, size_t cnt, get_tr_index(tr_index, &tr, &index); - if (tr->trace_flags & (1 << index)) + if (tr->trace_flags & (1ULL << index)) buf = "1\n"; else buf = "0\n"; @@ -9148,7 +9148,7 @@ trace_options_core_write(struct file *filp, const char __user *ubuf, size_t cnt, mutex_lock(&event_mutex); mutex_lock(&trace_types_lock); - ret = set_tracer_flag(tr, 1 << index, val); + ret = set_tracer_flag(tr, 1ULL << index, val); mutex_unlock(&trace_types_lock); mutex_unlock(&event_mutex); @@ -9312,8 +9312,9 @@ static void create_trace_options_dir(struct trace_array *tr) for (i = 0; trace_options[i]; i++) { if (top_level || - !((1 << i) & TOP_LEVEL_TRACE_FLAGS)) + !((1ULL << i) & TOP_LEVEL_TRACE_FLAGS)) { create_trace_option_core_file(tr, trace_options[i], i); + } } } @@ -9997,7 +9998,7 @@ static int __remove_instance(struct trace_array *tr) /* Disable all the flags that were enabled coming in */ for (i = 0; i < TRACE_FLAGS_MAX_SIZE; i++) { if ((1 << i) & ZEROED_TRACE_FLAGS) - set_tracer_flag(tr, 1 << i, 0); + set_tracer_flag(tr, 1ULL << i, 0); } if (printk_trace == tr) diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 1dbf1d3cf2f1..caec534072e7 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -216,7 +216,7 @@ struct array_buffer { int cpu; }; -#define TRACE_FLAGS_MAX_SIZE 32 +#define TRACE_FLAGS_MAX_SIZE 64 struct trace_options { struct tracer *tracer; @@ -390,7 +390,7 @@ struct trace_array { int buffer_percent; unsigned int n_err_log_entries; struct tracer *current_trace; - unsigned int trace_flags; + u64 trace_flags; unsigned char trace_flags_index[TRACE_FLAGS_MAX_SIZE]; unsigned int flags; raw_spinlock_t start_lock; @@ -631,7 +631,7 @@ struct tracer { u32 old_flags, u32 bit, int set); /* Return 0 if OK with change, else return non-zero */ int (*flag_changed)(struct trace_array *tr, - u32 mask, int set); + u64 mask, int set); struct tracer *next; struct tracer_flags *flags; int enabled; @@ -1385,7 +1385,7 @@ extern int trace_get_user(struct trace_parser *parser, const char __user *ubuf, C(MARKERS, "markers"), \ C(EVENT_FORK, "event-fork"), \ C(TRACE_PRINTK, "trace_printk_dest"), \ - C(COPY_MARKER, "copy_trace_marker"),\ + C(COPY_MARKER, "copy_trace_marker"), \ C(PAUSE_ON_TRACE, "pause-on-trace"), \ C(HASH_PTR, "hash-ptr"), /* Print hashed pointer */ \ FUNCTION_FLAGS \ @@ -1413,7 +1413,7 @@ enum trace_iterator_bits { #undef C #define C(a, b) TRACE_ITER_##a = (1 << TRACE_ITER_##a##_BIT) -enum trace_iterator_flags { TRACE_FLAGS }; +enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; /* * TRACE_ITER_SYM_MASK masks the options in trace_flags that @@ -2058,8 +2058,8 @@ extern const char *__stop___tracepoint_str[]; void trace_printk_control(bool enabled); void trace_printk_start_comm(void); -int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set); -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled); +int trace_keep_overwrite(struct tracer *tracer, u64 mask, int set); +int set_tracer_flag(struct trace_array *tr, u64 mask, int enabled); /* Used from boot time tracer */ extern int trace_set_options(struct trace_array *tr, char *option); diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c index 5496758b6c76..1a65f9f1075c 100644 --- a/kernel/trace/trace_irqsoff.c +++ b/kernel/trace/trace_irqsoff.c @@ -539,7 +539,7 @@ static inline int irqsoff_function_set(struct trace_array *tr, u32 mask, int set } #endif /* CONFIG_FUNCTION_TRACER */ -static int irqsoff_flag_changed(struct trace_array *tr, u32 mask, int set) +static int irqsoff_flag_changed(struct trace_array *tr, u64 mask, int set) { struct tracer *tracer = tr->current_trace; diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c index bf1cb80742ae..45865b4f753f 100644 --- a/kernel/trace/trace_sched_wakeup.c +++ b/kernel/trace/trace_sched_wakeup.c @@ -328,7 +328,7 @@ __trace_function(struct trace_array *tr, trace_function(tr, ip, parent_ip, trace_ctx, NULL); } -static int wakeup_flag_changed(struct trace_array *tr, u32 mask, int set) +static int wakeup_flag_changed(struct trace_array *tr, u64 mask, int set) { struct tracer *tracer = tr->current_trace; ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options 2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google) @ 2025-10-18 10:10 ` kernel test robot 2025-10-21 0:11 ` Masami Hiramatsu 2025-10-18 11:01 ` kernel test robot ` (2 subsequent siblings) 3 siblings, 1 reply; 9+ messages in thread From: kernel test robot @ 2025-10-18 10:10 UTC (permalink / raw) To: Masami Hiramatsu (Google), Steven Rostedt Cc: oe-kbuild-all, Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel Hi Masami, kernel test robot noticed the following build errors: [auto build test ERROR on trace/for-next] [also build test ERROR on linus/master v6.18-rc1 next-20251017] [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/Masami-Hiramatsu-Google/tracing-Allow-tracer-to-add-more-than-32-options/20251018-004104 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/176071774097.175601.10233017390618260565.stgit%40devnote2 patch subject: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options config: parisc-randconfig-001-20251018 (https://download.01.org/0day-ci/archive/20251018/202510181711.rxbGAQu7-lkp@intel.com/config) compiler: hppa-linux-gcc (GCC) 10.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251018/202510181711.rxbGAQu7-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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202510181711.rxbGAQu7-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from kernel/trace/trace_probe.h:31, from kernel/trace/trace_events_synth.c:20: kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token 1427 | enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; | ^ kernel/trace/trace_events_synth.c: In function 'print_synth_event': >> kernel/trace/trace_events_synth.c:362:31: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? 362 | if (tr && tr->trace_flags & TRACE_ITER_VERBOSE) | ^~~~~~~~~~~~~~~~~~ | TRACE_ITER_VERBOSE_BIT kernel/trace/trace_events_synth.c:362:31: note: each undeclared identifier is reported only once for each function it appears in vim +362 kernel/trace/trace_events_synth.c 726721a51838e3 Tom Zanussi 2020-05-28 337 726721a51838e3 Tom Zanussi 2020-05-28 338 static enum print_line_t print_synth_event(struct trace_iterator *iter, 726721a51838e3 Tom Zanussi 2020-05-28 339 int flags, 726721a51838e3 Tom Zanussi 2020-05-28 340 struct trace_event *event) 726721a51838e3 Tom Zanussi 2020-05-28 341 { 726721a51838e3 Tom Zanussi 2020-05-28 342 struct trace_array *tr = iter->tr; 726721a51838e3 Tom Zanussi 2020-05-28 343 struct trace_seq *s = &iter->seq; 726721a51838e3 Tom Zanussi 2020-05-28 344 struct synth_trace_event *entry; 726721a51838e3 Tom Zanussi 2020-05-28 345 struct synth_event *se; 887f92e09ef34a Sven Schnelle 2023-08-16 346 unsigned int i, j, n_u64; 726721a51838e3 Tom Zanussi 2020-05-28 347 char print_fmt[32]; 726721a51838e3 Tom Zanussi 2020-05-28 348 const char *fmt; 726721a51838e3 Tom Zanussi 2020-05-28 349 726721a51838e3 Tom Zanussi 2020-05-28 350 entry = (struct synth_trace_event *)iter->ent; 726721a51838e3 Tom Zanussi 2020-05-28 351 se = container_of(event, struct synth_event, call.event); 726721a51838e3 Tom Zanussi 2020-05-28 352 726721a51838e3 Tom Zanussi 2020-05-28 353 trace_seq_printf(s, "%s: ", se->name); 726721a51838e3 Tom Zanussi 2020-05-28 354 726721a51838e3 Tom Zanussi 2020-05-28 355 for (i = 0, n_u64 = 0; i < se->n_fields; i++) { 726721a51838e3 Tom Zanussi 2020-05-28 356 if (trace_seq_has_overflowed(s)) 726721a51838e3 Tom Zanussi 2020-05-28 357 goto end; 726721a51838e3 Tom Zanussi 2020-05-28 358 726721a51838e3 Tom Zanussi 2020-05-28 359 fmt = synth_field_fmt(se->fields[i]->type); 726721a51838e3 Tom Zanussi 2020-05-28 360 726721a51838e3 Tom Zanussi 2020-05-28 361 /* parameter types */ 726721a51838e3 Tom Zanussi 2020-05-28 @362 if (tr && tr->trace_flags & TRACE_ITER_VERBOSE) 726721a51838e3 Tom Zanussi 2020-05-28 363 trace_seq_printf(s, "%s ", fmt); 726721a51838e3 Tom Zanussi 2020-05-28 364 726721a51838e3 Tom Zanussi 2020-05-28 365 snprintf(print_fmt, sizeof(print_fmt), "%%s=%s%%s", fmt); 726721a51838e3 Tom Zanussi 2020-05-28 366 726721a51838e3 Tom Zanussi 2020-05-28 367 /* parameter values */ 726721a51838e3 Tom Zanussi 2020-05-28 368 if (se->fields[i]->is_string) { bd82631d7ccdc8 Tom Zanussi 2020-10-04 369 if (se->fields[i]->is_dynamic) { ddeea494a16f32 Sven Schnelle 2023-08-16 370 union trace_synth_field *data = &entry->fields[n_u64]; bd82631d7ccdc8 Tom Zanussi 2020-10-04 371 bd82631d7ccdc8 Tom Zanussi 2020-10-04 372 trace_seq_printf(s, print_fmt, se->fields[i]->name, ddeea494a16f32 Sven Schnelle 2023-08-16 373 (char *)entry + data->as_dynamic.offset, bd82631d7ccdc8 Tom Zanussi 2020-10-04 374 i == se->n_fields - 1 ? "" : " "); bd82631d7ccdc8 Tom Zanussi 2020-10-04 375 n_u64++; bd82631d7ccdc8 Tom Zanussi 2020-10-04 376 } else { 726721a51838e3 Tom Zanussi 2020-05-28 377 trace_seq_printf(s, print_fmt, se->fields[i]->name, 8db4d6bfbbf920 Steven Rostedt (VMware 2020-10-04 378) STR_VAR_LEN_MAX, ddeea494a16f32 Sven Schnelle 2023-08-16 379 (char *)&entry->fields[n_u64].as_u64, 726721a51838e3 Tom Zanussi 2020-05-28 380 i == se->n_fields - 1 ? "" : " "); 726721a51838e3 Tom Zanussi 2020-05-28 381 n_u64 += STR_VAR_LEN_MAX / sizeof(u64); bd82631d7ccdc8 Tom Zanussi 2020-10-04 382 } 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 383) } else if (se->fields[i]->is_stack) { ddeea494a16f32 Sven Schnelle 2023-08-16 384 union trace_synth_field *data = &entry->fields[n_u64]; 887f92e09ef34a Sven Schnelle 2023-08-16 385 unsigned long *p = (void *)entry + data->as_dynamic.offset; 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 386) 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 387) trace_seq_printf(s, "%s=STACK:\n", se->fields[i]->name); 887f92e09ef34a Sven Schnelle 2023-08-16 388 for (j = 1; j < data->as_dynamic.len / sizeof(long); j++) 887f92e09ef34a Sven Schnelle 2023-08-16 389 trace_seq_printf(s, "=> %pS\n", (void *)p[j]); 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 390) n_u64++; 726721a51838e3 Tom Zanussi 2020-05-28 391 } else { 726721a51838e3 Tom Zanussi 2020-05-28 392 struct trace_print_flags __flags[] = { 726721a51838e3 Tom Zanussi 2020-05-28 393 __def_gfpflag_names, {-1, NULL} }; 726721a51838e3 Tom Zanussi 2020-05-28 394 char *space = (i == se->n_fields - 1 ? "" : " "); 726721a51838e3 Tom Zanussi 2020-05-28 395 726721a51838e3 Tom Zanussi 2020-05-28 396 print_synth_event_num_val(s, print_fmt, 726721a51838e3 Tom Zanussi 2020-05-28 397 se->fields[i]->name, 726721a51838e3 Tom Zanussi 2020-05-28 398 se->fields[i]->size, ddeea494a16f32 Sven Schnelle 2023-08-16 399 &entry->fields[n_u64], 726721a51838e3 Tom Zanussi 2020-05-28 400 space); 726721a51838e3 Tom Zanussi 2020-05-28 401 726721a51838e3 Tom Zanussi 2020-05-28 402 if (strcmp(se->fields[i]->type, "gfp_t") == 0) { 726721a51838e3 Tom Zanussi 2020-05-28 403 trace_seq_puts(s, " ("); 726721a51838e3 Tom Zanussi 2020-05-28 404 trace_print_flags_seq(s, "|", ddeea494a16f32 Sven Schnelle 2023-08-16 405 entry->fields[n_u64].as_u64, 726721a51838e3 Tom Zanussi 2020-05-28 406 __flags); 726721a51838e3 Tom Zanussi 2020-05-28 407 trace_seq_putc(s, ')'); 726721a51838e3 Tom Zanussi 2020-05-28 408 } 726721a51838e3 Tom Zanussi 2020-05-28 409 n_u64++; 726721a51838e3 Tom Zanussi 2020-05-28 410 } 726721a51838e3 Tom Zanussi 2020-05-28 411 } 726721a51838e3 Tom Zanussi 2020-05-28 412 end: 726721a51838e3 Tom Zanussi 2020-05-28 413 trace_seq_putc(s, '\n'); 726721a51838e3 Tom Zanussi 2020-05-28 414 726721a51838e3 Tom Zanussi 2020-05-28 415 return trace_handle_return(s); 726721a51838e3 Tom Zanussi 2020-05-28 416 } 726721a51838e3 Tom Zanussi 2020-05-28 417 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options 2025-10-18 10:10 ` kernel test robot @ 2025-10-21 0:11 ` Masami Hiramatsu 0 siblings, 0 replies; 9+ messages in thread From: Masami Hiramatsu @ 2025-10-21 0:11 UTC (permalink / raw) To: kernel test robot Cc: Steven Rostedt, oe-kbuild-all, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel Hmm, so it is clear that we can not use C++11. So it should use another way to do that. Thank you, On Sat, 18 Oct 2025 18:10:01 +0800 kernel test robot <lkp@intel.com> wrote: > Hi Masami, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on trace/for-next] > [also build test ERROR on linus/master v6.18-rc1 next-20251017] > [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/Masami-Hiramatsu-Google/tracing-Allow-tracer-to-add-more-than-32-options/20251018-004104 > base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next > patch link: https://lore.kernel.org/r/176071774097.175601.10233017390618260565.stgit%40devnote2 > patch subject: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options > config: parisc-randconfig-001-20251018 (https://download.01.org/0day-ci/archive/20251018/202510181711.rxbGAQu7-lkp@intel.com/config) > compiler: hppa-linux-gcc (GCC) 10.5.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251018/202510181711.rxbGAQu7-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@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202510181711.rxbGAQu7-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > In file included from kernel/trace/trace_probe.h:31, > from kernel/trace/trace_events_synth.c:20: > kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token > 1427 | enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; > | ^ > kernel/trace/trace_events_synth.c: In function 'print_synth_event': > >> kernel/trace/trace_events_synth.c:362:31: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? > 362 | if (tr && tr->trace_flags & TRACE_ITER_VERBOSE) > | ^~~~~~~~~~~~~~~~~~ > | TRACE_ITER_VERBOSE_BIT > kernel/trace/trace_events_synth.c:362:31: note: each undeclared identifier is reported only once for each function it appears in > > > vim +362 kernel/trace/trace_events_synth.c > > 726721a51838e3 Tom Zanussi 2020-05-28 337 > 726721a51838e3 Tom Zanussi 2020-05-28 338 static enum print_line_t print_synth_event(struct trace_iterator *iter, > 726721a51838e3 Tom Zanussi 2020-05-28 339 int flags, > 726721a51838e3 Tom Zanussi 2020-05-28 340 struct trace_event *event) > 726721a51838e3 Tom Zanussi 2020-05-28 341 { > 726721a51838e3 Tom Zanussi 2020-05-28 342 struct trace_array *tr = iter->tr; > 726721a51838e3 Tom Zanussi 2020-05-28 343 struct trace_seq *s = &iter->seq; > 726721a51838e3 Tom Zanussi 2020-05-28 344 struct synth_trace_event *entry; > 726721a51838e3 Tom Zanussi 2020-05-28 345 struct synth_event *se; > 887f92e09ef34a Sven Schnelle 2023-08-16 346 unsigned int i, j, n_u64; > 726721a51838e3 Tom Zanussi 2020-05-28 347 char print_fmt[32]; > 726721a51838e3 Tom Zanussi 2020-05-28 348 const char *fmt; > 726721a51838e3 Tom Zanussi 2020-05-28 349 > 726721a51838e3 Tom Zanussi 2020-05-28 350 entry = (struct synth_trace_event *)iter->ent; > 726721a51838e3 Tom Zanussi 2020-05-28 351 se = container_of(event, struct synth_event, call.event); > 726721a51838e3 Tom Zanussi 2020-05-28 352 > 726721a51838e3 Tom Zanussi 2020-05-28 353 trace_seq_printf(s, "%s: ", se->name); > 726721a51838e3 Tom Zanussi 2020-05-28 354 > 726721a51838e3 Tom Zanussi 2020-05-28 355 for (i = 0, n_u64 = 0; i < se->n_fields; i++) { > 726721a51838e3 Tom Zanussi 2020-05-28 356 if (trace_seq_has_overflowed(s)) > 726721a51838e3 Tom Zanussi 2020-05-28 357 goto end; > 726721a51838e3 Tom Zanussi 2020-05-28 358 > 726721a51838e3 Tom Zanussi 2020-05-28 359 fmt = synth_field_fmt(se->fields[i]->type); > 726721a51838e3 Tom Zanussi 2020-05-28 360 > 726721a51838e3 Tom Zanussi 2020-05-28 361 /* parameter types */ > 726721a51838e3 Tom Zanussi 2020-05-28 @362 if (tr && tr->trace_flags & TRACE_ITER_VERBOSE) > 726721a51838e3 Tom Zanussi 2020-05-28 363 trace_seq_printf(s, "%s ", fmt); > 726721a51838e3 Tom Zanussi 2020-05-28 364 > 726721a51838e3 Tom Zanussi 2020-05-28 365 snprintf(print_fmt, sizeof(print_fmt), "%%s=%s%%s", fmt); > 726721a51838e3 Tom Zanussi 2020-05-28 366 > 726721a51838e3 Tom Zanussi 2020-05-28 367 /* parameter values */ > 726721a51838e3 Tom Zanussi 2020-05-28 368 if (se->fields[i]->is_string) { > bd82631d7ccdc8 Tom Zanussi 2020-10-04 369 if (se->fields[i]->is_dynamic) { > ddeea494a16f32 Sven Schnelle 2023-08-16 370 union trace_synth_field *data = &entry->fields[n_u64]; > bd82631d7ccdc8 Tom Zanussi 2020-10-04 371 > bd82631d7ccdc8 Tom Zanussi 2020-10-04 372 trace_seq_printf(s, print_fmt, se->fields[i]->name, > ddeea494a16f32 Sven Schnelle 2023-08-16 373 (char *)entry + data->as_dynamic.offset, > bd82631d7ccdc8 Tom Zanussi 2020-10-04 374 i == se->n_fields - 1 ? "" : " "); > bd82631d7ccdc8 Tom Zanussi 2020-10-04 375 n_u64++; > bd82631d7ccdc8 Tom Zanussi 2020-10-04 376 } else { > 726721a51838e3 Tom Zanussi 2020-05-28 377 trace_seq_printf(s, print_fmt, se->fields[i]->name, > 8db4d6bfbbf920 Steven Rostedt (VMware 2020-10-04 378) STR_VAR_LEN_MAX, > ddeea494a16f32 Sven Schnelle 2023-08-16 379 (char *)&entry->fields[n_u64].as_u64, > 726721a51838e3 Tom Zanussi 2020-05-28 380 i == se->n_fields - 1 ? "" : " "); > 726721a51838e3 Tom Zanussi 2020-05-28 381 n_u64 += STR_VAR_LEN_MAX / sizeof(u64); > bd82631d7ccdc8 Tom Zanussi 2020-10-04 382 } > 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 383) } else if (se->fields[i]->is_stack) { > ddeea494a16f32 Sven Schnelle 2023-08-16 384 union trace_synth_field *data = &entry->fields[n_u64]; > 887f92e09ef34a Sven Schnelle 2023-08-16 385 unsigned long *p = (void *)entry + data->as_dynamic.offset; > 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 386) > 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 387) trace_seq_printf(s, "%s=STACK:\n", se->fields[i]->name); > 887f92e09ef34a Sven Schnelle 2023-08-16 388 for (j = 1; j < data->as_dynamic.len / sizeof(long); j++) > 887f92e09ef34a Sven Schnelle 2023-08-16 389 trace_seq_printf(s, "=> %pS\n", (void *)p[j]); > 00cf3d672a9dd4 Steven Rostedt (Google 2023-01-17 390) n_u64++; > 726721a51838e3 Tom Zanussi 2020-05-28 391 } else { > 726721a51838e3 Tom Zanussi 2020-05-28 392 struct trace_print_flags __flags[] = { > 726721a51838e3 Tom Zanussi 2020-05-28 393 __def_gfpflag_names, {-1, NULL} }; > 726721a51838e3 Tom Zanussi 2020-05-28 394 char *space = (i == se->n_fields - 1 ? "" : " "); > 726721a51838e3 Tom Zanussi 2020-05-28 395 > 726721a51838e3 Tom Zanussi 2020-05-28 396 print_synth_event_num_val(s, print_fmt, > 726721a51838e3 Tom Zanussi 2020-05-28 397 se->fields[i]->name, > 726721a51838e3 Tom Zanussi 2020-05-28 398 se->fields[i]->size, > ddeea494a16f32 Sven Schnelle 2023-08-16 399 &entry->fields[n_u64], > 726721a51838e3 Tom Zanussi 2020-05-28 400 space); > 726721a51838e3 Tom Zanussi 2020-05-28 401 > 726721a51838e3 Tom Zanussi 2020-05-28 402 if (strcmp(se->fields[i]->type, "gfp_t") == 0) { > 726721a51838e3 Tom Zanussi 2020-05-28 403 trace_seq_puts(s, " ("); > 726721a51838e3 Tom Zanussi 2020-05-28 404 trace_print_flags_seq(s, "|", > ddeea494a16f32 Sven Schnelle 2023-08-16 405 entry->fields[n_u64].as_u64, > 726721a51838e3 Tom Zanussi 2020-05-28 406 __flags); > 726721a51838e3 Tom Zanussi 2020-05-28 407 trace_seq_putc(s, ')'); > 726721a51838e3 Tom Zanussi 2020-05-28 408 } > 726721a51838e3 Tom Zanussi 2020-05-28 409 n_u64++; > 726721a51838e3 Tom Zanussi 2020-05-28 410 } > 726721a51838e3 Tom Zanussi 2020-05-28 411 } > 726721a51838e3 Tom Zanussi 2020-05-28 412 end: > 726721a51838e3 Tom Zanussi 2020-05-28 413 trace_seq_putc(s, '\n'); > 726721a51838e3 Tom Zanussi 2020-05-28 414 > 726721a51838e3 Tom Zanussi 2020-05-28 415 return trace_handle_return(s); > 726721a51838e3 Tom Zanussi 2020-05-28 416 } > 726721a51838e3 Tom Zanussi 2020-05-28 417 > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki -- Masami Hiramatsu (Google) <mhiramat@kernel.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options 2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google) 2025-10-18 10:10 ` kernel test robot @ 2025-10-18 11:01 ` kernel test robot 2025-10-18 17:19 ` kernel test robot 2025-10-18 20:04 ` kernel test robot 3 siblings, 0 replies; 9+ messages in thread From: kernel test robot @ 2025-10-18 11:01 UTC (permalink / raw) To: Masami Hiramatsu (Google), Steven Rostedt Cc: oe-kbuild-all, Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel Hi Masami, kernel test robot noticed the following build errors: [auto build test ERROR on trace/for-next] [also build test ERROR on linus/master v6.18-rc1 next-20251017] [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/Masami-Hiramatsu-Google/tracing-Allow-tracer-to-add-more-than-32-options/20251018-004104 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/176071774097.175601.10233017390618260565.stgit%40devnote2 patch subject: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options config: arc-randconfig-002-20251018 (https://download.01.org/0day-ci/archive/20251018/202510181829.4FNFzdXV-lkp@intel.com/config) compiler: arc-linux-gcc (GCC) 8.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251018/202510181829.4FNFzdXV-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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202510181829.4FNFzdXV-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from kernel/trace/trace_events_filter.c:15: >> kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; ^ -- In file included from kernel/trace/trace_output.c:8: >> kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; ^ kernel/trace/trace_output.c: In function 'seq_print_user_ip': >> kernel/trace/trace_output.c:423:27: error: 'TRACE_ITER_SYM_ADDR' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_ADDR_BIT'? if (ret && ((sym_flags & TRACE_ITER_SYM_ADDR) || !file)) ^~~~~~~~~~~~~~~~~~~ TRACE_ITER_SYM_ADDR_BIT kernel/trace/trace_output.c:423:27: note: each undeclared identifier is reported only once for each function it appears in kernel/trace/trace_output.c: In function 'seq_print_ip_sym': >> kernel/trace/trace_output.c:436:41: error: 'TRACE_ITER_SYM_OFFSET' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_OFFSET_BIT'? trace_seq_print_sym(s, ip, sym_flags & TRACE_ITER_SYM_OFFSET); ^~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_SYM_OFFSET_BIT kernel/trace/trace_output.c:438:18: error: 'TRACE_ITER_SYM_ADDR' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_ADDR_BIT'? if (sym_flags & TRACE_ITER_SYM_ADDR) ^~~~~~~~~~~~~~~~~~~ TRACE_ITER_SYM_ADDR_BIT kernel/trace/trace_output.c: In function 'lat_print_timestamp': >> kernel/trace/trace_output.c:572:44: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? unsigned long verbose = tr->trace_flags & TRACE_ITER_VERBOSE; ^~~~~~~~~~~~~~~~~~ TRACE_ITER_VERBOSE_BIT kernel/trace/trace_output.c: In function 'trace_print_context': >> kernel/trace/trace_output.c:639:24: error: 'TRACE_ITER_RECORD_TGID' undeclared (first use in this function); did you mean 'TRACE_ITER_RECORD_TGID_BIT'? if (tr->trace_flags & TRACE_ITER_RECORD_TGID) { ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_RECORD_TGID_BIT >> kernel/trace/trace_output.c:650:24: error: 'TRACE_ITER_IRQ_INFO' undeclared (first use in this function); did you mean 'TRACE_ITER_IRQ_INFO_BIT'? if (tr->trace_flags & TRACE_ITER_IRQ_INFO) ^~~~~~~~~~~~~~~~~~~ TRACE_ITER_IRQ_INFO_BIT kernel/trace/trace_output.c: In function 'trace_print_lat_context': kernel/trace/trace_output.c:664:45: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? unsigned long verbose = (tr->trace_flags & TRACE_ITER_VERBOSE); ^~~~~~~~~~~~~~~~~~ TRACE_ITER_VERBOSE_BIT kernel/trace/trace_output.c: In function 'print_fn_trace': >> kernel/trace/trace_output.c:1130:15: error: 'TRACE_ITER_PRINT_PARENT' undeclared (first use in this function); did you mean 'TRACE_ITER_PRINT_PARENT_BIT'? if ((flags & TRACE_ITER_PRINT_PARENT) && parent_ip) { ^~~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_PRINT_PARENT_BIT kernel/trace/trace_output.c: In function 'trace_user_stack_print': >> kernel/trace/trace_output.c:1420:24: error: 'TRACE_ITER_SYM_USEROBJ' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_USEROBJ_BIT'? if (tr->trace_flags & TRACE_ITER_SYM_USEROBJ) { ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_SYM_USEROBJ_BIT -- In file included from kernel/trace/trace_output.h:6, from kernel/trace/trace_syscalls.c:13: >> kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; ^ kernel/trace/trace_syscalls.c: In function 'print_syscall_enter': >> kernel/trace/trace_syscalls.c:160:31: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? if (tr && tr->trace_flags & TRACE_ITER_VERBOSE) ^~~~~~~~~~~~~~~~~~ TRACE_ITER_VERBOSE_BIT kernel/trace/trace_syscalls.c:160:31: note: each undeclared identifier is reported only once for each function it appears in -- In file included from kernel/trace/trace_output.h:6, from kernel/trace/trace_events.c:31: >> kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; ^ kernel/trace/trace_events.c: In function '__ftrace_event_enable_disable': >> kernel/trace/trace_events.c:848:26: error: 'TRACE_ITER_RECORD_CMD' undeclared (first use in this function); did you mean 'TRACE_ITER_RECORD_CMD_BIT'? if (tr->trace_flags & TRACE_ITER_RECORD_CMD) { ^~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_RECORD_CMD_BIT kernel/trace/trace_events.c:848:26: note: each undeclared identifier is reported only once for each function it appears in >> kernel/trace/trace_events.c:854:26: error: 'TRACE_ITER_RECORD_TGID' undeclared (first use in this function); did you mean 'TRACE_ITER_RECORD_TGID_BIT'? if (tr->trace_flags & TRACE_ITER_RECORD_TGID) { ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_RECORD_TGID_BIT -- In file included from kernel/trace/trace.c:58: >> kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; ^ >> kernel/trace/trace.c:516:3: error: 'TRACE_ITER_PRINT_PARENT' undeclared here (not in a function); did you mean 'TRACE_ITER_PRINT_PARENT_BIT'? TRACE_ITER_PRINT_PARENT | TRACE_ITER_PRINTK | \ ^~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:516:29: error: 'TRACE_ITER_PRINTK' undeclared here (not in a function); did you mean 'TRACE_ITER_PRINTK_BIT'? TRACE_ITER_PRINT_PARENT | TRACE_ITER_PRINTK | \ ^~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:517:3: error: 'TRACE_ITER_ANNOTATE' undeclared here (not in a function); did you mean 'TRACE_FILE_ANNOTATE'? TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO | \ ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:517:25: error: 'TRACE_ITER_CONTEXT_INFO' undeclared here (not in a function); did you mean 'TRACE_ITER_CONTEXT_INFO_BIT'? TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO | \ ^~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:518:3: error: 'TRACE_ITER_RECORD_CMD' undeclared here (not in a function); did you mean 'TRACE_ITER_RECORD_CMD_BIT'? TRACE_ITER_RECORD_CMD | TRACE_ITER_OVERWRITE | \ ^~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:518:27: error: 'TRACE_ITER_OVERWRITE' undeclared here (not in a function); did you mean 'TRACE_ITER_OVERWRITE_BIT'? TRACE_ITER_RECORD_CMD | TRACE_ITER_OVERWRITE | \ ^~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:519:3: error: 'TRACE_ITER_IRQ_INFO' undeclared here (not in a function); did you mean 'TRACE_ITER_IRQ_INFO_BIT'? TRACE_ITER_IRQ_INFO | TRACE_ITER_MARKERS | \ ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:519:25: error: 'TRACE_ITER_MARKERS' undeclared here (not in a function); did you mean 'TRACE_ITER_MARKERS_BIT'? TRACE_ITER_IRQ_INFO | TRACE_ITER_MARKERS | \ ^~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:520:3: error: 'TRACE_ITER_HASH_PTR' undeclared here (not in a function); did you mean 'TRACE_ITER_HASH_PTR_BIT'? TRACE_ITER_HASH_PTR | TRACE_ITER_TRACE_PRINTK | \ ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:520:25: error: 'TRACE_ITER_TRACE_PRINTK' undeclared here (not in a function); did you mean 'TRACE_ITER_TRACE_PRINTK_BIT'? TRACE_ITER_HASH_PTR | TRACE_ITER_TRACE_PRINTK | \ ^~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:521:3: error: 'TRACE_ITER_COPY_MARKER' undeclared here (not in a function); did you mean 'TRACE_ITER_COPY_MARKER_BIT'? TRACE_ITER_COPY_MARKER) ^~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:537:17: note: in expansion of macro 'TRACE_DEFAULT_FLAGS' .trace_flags = TRACE_DEFAULT_FLAGS, ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c: In function 'ftrace_trace_stack': >> kernel/trace/trace.c:3081:26: error: 'TRACE_ITER_STACKTRACE' undeclared (first use in this function); did you mean 'TRACE_ITER_STACKTRACE_BIT'? if (!(tr->trace_flags & TRACE_ITER_STACKTRACE)) ^~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_STACKTRACE_BIT kernel/trace/trace.c:3081:26: note: each undeclared identifier is reported only once for each function it appears in kernel/trace/trace.c: In function 'print_func_help_header': >> kernel/trace/trace.c:4116:22: error: 'TRACE_ITER_RECORD_TGID' undeclared (first use in this function); did you mean 'TRACE_ITER_RECORD_TGID_BIT'? bool tgid = flags & TRACE_ITER_RECORD_TGID; ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_RECORD_TGID_BIT kernel/trace/trace.c: In function 'print_func_help_header_irq': kernel/trace/trace.c:4127:22: error: 'TRACE_ITER_RECORD_TGID' undeclared (first use in this function); did you mean 'TRACE_ITER_RECORD_TGID_BIT'? bool tgid = flags & TRACE_ITER_RECORD_TGID; ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_RECORD_TGID_BIT In file included from kernel/trace/trace.c:58: kernel/trace/trace.c: In function 'print_trace_header': >> kernel/trace/trace.h:1434:27: error: 'TRACE_ITER_SYM_OFFSET' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_OFFSET_BIT'? (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR) ^~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:4146:56: note: in expansion of macro 'TRACE_ITER_SYM_MASK' unsigned long sym_flags = (global_trace.trace_flags & TRACE_ITER_SYM_MASK); ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.h:1434:49: error: 'TRACE_ITER_SYM_ADDR' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_ADDR_BIT'? (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR) ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:4146:56: note: in expansion of macro 'TRACE_ITER_SYM_MASK' unsigned long sym_flags = (global_trace.trace_flags & TRACE_ITER_SYM_MASK); ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c: In function 'print_trace_fmt': >> kernel/trace/trace.h:1434:27: error: 'TRACE_ITER_SYM_OFFSET' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_OFFSET_BIT'? (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR) ^~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:4226:47: note: in expansion of macro 'TRACE_ITER_SYM_MASK' unsigned long sym_flags = (tr->trace_flags & TRACE_ITER_SYM_MASK); ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.h:1434:49: error: 'TRACE_ITER_SYM_ADDR' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_ADDR_BIT'? (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR) ^~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:4226:47: note: in expansion of macro 'TRACE_ITER_SYM_MASK' unsigned long sym_flags = (tr->trace_flags & TRACE_ITER_SYM_MASK); ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/trace.c:4247:25: error: 'TRACE_ITER_FIELDS' undeclared (first use in this function); did you mean 'TRACE_ITER_FIELDS_BIT'? if (tr->trace_flags & TRACE_ITER_FIELDS) ^~~~~~~~~~~~~~~~~ TRACE_ITER_FIELDS_BIT kernel/trace/trace.c: In function 'print_trace_line': >> kernel/trace/trace.c:4402:18: error: 'TRACE_ITER_PRINTK_MSGONLY' undeclared (first use in this function); did you mean 'TRACE_ITER_PRINTK_MSGONLY_BIT'? trace_flags & TRACE_ITER_PRINTK_MSGONLY) ^~~~~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_PRINTK_MSGONLY_BIT kernel/trace/trace.c:4415:20: error: 'TRACE_ITER_BIN' undeclared (first use in this function); did you mean 'TRACE_ITER_BIN_BIT'? if (trace_flags & TRACE_ITER_BIN) ^~~~~~~~~~~~~~ TRACE_ITER_BIN_BIT kernel/trace/trace.c:4418:20: error: 'TRACE_ITER_HEX' undeclared (first use in this function); did you mean 'TRACE_ITER_HEX_BIT'? if (trace_flags & TRACE_ITER_HEX) ^~~~~~~~~~~~~~ TRACE_ITER_HEX_BIT kernel/trace/trace.c:4421:20: error: 'TRACE_ITER_RAW' undeclared (first use in this function); did you mean 'TRACE_ITER_RAW_BIT'? if (trace_flags & TRACE_ITER_RAW) ^~~~~~~~~~~~~~ TRACE_ITER_RAW_BIT kernel/trace/trace.c: In function 'trace_latency_header': kernel/trace/trace.c:4439:26: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? if (!(tr->trace_flags & TRACE_ITER_VERBOSE)) ^~~~~~~~~~~~~~~~~~ TRACE_ITER_VERBOSE_BIT kernel/trace/trace.c: In function 'trace_default_header': kernel/trace/trace.c:4457:23: error: 'TRACE_ITER_VERBOSE' undeclared (first use in this function); did you mean 'TRACE_ITER_VERBOSE_BIT'? if (!(trace_flags & TRACE_ITER_VERBOSE)) ^~~~~~~~~~~~~~~~~~ TRACE_ITER_VERBOSE_BIT kernel/trace/trace.c: In function '__tracing_open': kernel/trace/trace.c:4685:44: error: 'TRACE_ITER_PAUSE_ON_TRACE' undeclared (first use in this function); did you mean 'TRACE_ITER_PAUSE_ON_TRACE_BIT'? if (!iter->snapshot && (tr->trace_flags & TRACE_ITER_PAUSE_ON_TRACE)) ^~~~~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_PAUSE_ON_TRACE_BIT kernel/trace/trace.c: In function 'tracing_open': kernel/trace/trace.c:4885:30: error: 'TRACE_ITER_LATENCY_FMT' undeclared (first use in this function); did you mean 'TRACE_ITER_LATENCY_FMT_BIT'? else if (tr->trace_flags & TRACE_ITER_LATENCY_FMT) ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_LATENCY_FMT_BIT kernel/trace/trace.c: In function 'set_tracer_flag': kernel/trace/trace.c:5220:15: error: 'TRACE_ITER_RECORD_TGID' undeclared (first use in this function); did you mean 'TRACE_ITER_RECORD_TGID_BIT'? if ((mask == TRACE_ITER_RECORD_TGID) || ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_RECORD_TGID_BIT kernel/trace/trace.c:5275:14: error: 'TRACE_ITER_EVENT_FORK' undeclared (first use in this function); did you mean 'TRACE_ITER_EVENT_FORK_BIT'? if (mask == TRACE_ITER_EVENT_FORK) ^~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_EVENT_FORK_BIT kernel/trace/trace.c: In function 'tracing_open_pipe': kernel/trace/trace.c:6548:24: error: 'TRACE_ITER_LATENCY_FMT' undeclared (first use in this function); did you mean 'TRACE_ITER_LATENCY_FMT_BIT'? if (tr->trace_flags & TRACE_ITER_LATENCY_FMT) ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_LATENCY_FMT_BIT kernel/trace/trace.c: In function 'trace_poll': kernel/trace/trace.c:6609:24: error: 'TRACE_ITER_BLOCK' undeclared (first use in this function); did you mean 'TRACE_ITER_BLOCK_BIT'? if (tr->trace_flags & TRACE_ITER_BLOCK) ^~~~~~~~~~~~~~~~ TRACE_ITER_BLOCK_BIT kernel/trace/trace.c: In function 'tracing_free_buffer_release': kernel/trace/trace.c:7161:24: error: 'TRACE_ITER_STOP_ON_FREE' undeclared (first use in this function); did you mean 'TRACE_ITER_STOP_ON_FREE_BIT'? if (tr->trace_flags & TRACE_ITER_STOP_ON_FREE) ^~~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_STOP_ON_FREE_BIT kernel/trace/trace.c: In function 'create_trace_options_dir': kernel/trace/trace.c:525:9: error: 'TRACE_ITER_PRINTK_MSGONLY' undeclared (first use in this function); did you mean 'TRACE_ITER_PRINTK_MSGONLY_BIT'? TRACE_ITER_PRINTK_MSGONLY | TRACE_ITER_RECORD_CMD) ^~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:9332:23: note: in expansion of macro 'TOP_LEVEL_TRACE_FLAGS' !((1ULL << i) & TOP_LEVEL_TRACE_FLAGS)) { ^~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c: In function 'trace_array_create_systems': kernel/trace/trace.c:529:3: error: 'TRACE_ITER_EVENT_FORK' undeclared (first use in this function); did you mean 'TRACE_ITER_EVENT_FORK_BIT'? (TRACE_ITER_EVENT_FORK | TRACE_ITER_FUNC_FORK | TRACE_ITER_TRACE_PRINTK | \ ^~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:9848:48: note: in expansion of macro 'ZEROED_TRACE_FLAGS' tr->trace_flags = global_trace.trace_flags & ~ZEROED_TRACE_FLAGS; ^~~~~~~~~~~~~~~~~~ kernel/trace/trace.c: In function '__remove_instance': kernel/trace/trace.c:529:3: error: 'TRACE_ITER_EVENT_FORK' undeclared (first use in this function); did you mean 'TRACE_ITER_EVENT_FORK_BIT'? (TRACE_ITER_EVENT_FORK | TRACE_ITER_FUNC_FORK | TRACE_ITER_TRACE_PRINTK | \ ^~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace.c:10017:18: note: in expansion of macro 'ZEROED_TRACE_FLAGS' if ((1 << i) & ZEROED_TRACE_FLAGS) ^~~~~~~~~~~~~~~~~~ kernel/trace/trace.c: In function 'ftrace_dump_one': kernel/trace/trace.c:10609:34: error: 'TRACE_ITER_SYM_USEROBJ' undeclared (first use in this function); did you mean 'TRACE_ITER_SYM_USEROBJ_BIT'? old_userobj = tr->trace_flags & TRACE_ITER_SYM_USEROBJ; ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_SYM_USEROBJ_BIT kernel/trace/trace.c: In function 'trace_poll': kernel/trace/trace.c:6617:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ -- In file included from kernel/trace/trace_sched_wakeup.c:20: >> kernel/trace/trace.h:1427:27: error: expected identifier or '(' before ':' token enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; ^ kernel/trace/trace_sched_wakeup.c: In function '__wakeup_tracer_init': >> kernel/trace/trace_sched_wakeup.c:688:22: error: 'TRACE_ITER_OVERWRITE' undeclared (first use in this function); did you mean 'TRACE_ITER_OVERWRITE_BIT'? set_tracer_flag(tr, TRACE_ITER_OVERWRITE, 1); ^~~~~~~~~~~~~~~~~~~~ TRACE_ITER_OVERWRITE_BIT kernel/trace/trace_sched_wakeup.c:688:22: note: each undeclared identifier is reported only once for each function it appears in >> kernel/trace/trace_sched_wakeup.c:689:22: error: 'TRACE_ITER_LATENCY_FMT' undeclared (first use in this function); did you mean 'TRACE_ITER_LATENCY_FMT_BIT'? set_tracer_flag(tr, TRACE_ITER_LATENCY_FMT, 1); ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_LATENCY_FMT_BIT kernel/trace/trace_sched_wakeup.c: In function 'wakeup_tracer_reset': kernel/trace/trace_sched_wakeup.c:732:30: error: 'TRACE_ITER_LATENCY_FMT' undeclared (first use in this function); did you mean 'TRACE_ITER_LATENCY_FMT_BIT'? int lat_flag = save_flags & TRACE_ITER_LATENCY_FMT; ^~~~~~~~~~~~~~~~~~~~~~ TRACE_ITER_LATENCY_FMT_BIT kernel/trace/trace_sched_wakeup.c:733:36: error: 'TRACE_ITER_OVERWRITE' undeclared (first use in this function); did you mean 'TRACE_ITER_OVERWRITE_BIT'? int overwrite_flag = save_flags & TRACE_ITER_OVERWRITE; ^~~~~~~~~~~~~~~~~~~~ TRACE_ITER_OVERWRITE_BIT .. vim +1427 kernel/trace/trace.h 1426 > 1427 enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; 1428 1429 /* 1430 * TRACE_ITER_SYM_MASK masks the options in trace_flags that 1431 * control the output of kernel symbols. 1432 */ 1433 #define TRACE_ITER_SYM_MASK \ > 1434 (TRACE_ITER_PRINT_PARENT|TRACE_ITER_SYM_OFFSET|TRACE_ITER_SYM_ADDR) 1435 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options 2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google) 2025-10-18 10:10 ` kernel test robot 2025-10-18 11:01 ` kernel test robot @ 2025-10-18 17:19 ` kernel test robot 2025-10-18 20:04 ` kernel test robot 3 siblings, 0 replies; 9+ messages in thread From: kernel test robot @ 2025-10-18 17:19 UTC (permalink / raw) To: Masami Hiramatsu (Google), Steven Rostedt Cc: oe-kbuild-all, Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel Hi Masami, kernel test robot noticed the following build warnings: [auto build test WARNING on trace/for-next] [also build test WARNING on linus/master v6.18-rc1 next-20251017] [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/Masami-Hiramatsu-Google/tracing-Allow-tracer-to-add-more-than-32-options/20251018-004104 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/176071774097.175601.10233017390618260565.stgit%40devnote2 patch subject: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options config: arm-randconfig-r112-20251018 (https://download.01.org/0day-ci/archive/20251019/202510190117.rUh1e4k6-lkp@intel.com/config) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 754ebc6ebb9fb9fbee7aef33478c74ea74949853) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251019/202510190117.rUh1e4k6-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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202510190117.rUh1e4k6-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) kernel/trace/ftrace.c: note: in included file (through kernel/trace/trace_output.h): >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/ftrace.c:1501:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/trace/ftrace.c:1501:9: sparse: struct ftrace_hash [noderef] __rcu * kernel/trace/ftrace.c:1501:9: sparse: struct ftrace_hash * kernel/trace/ftrace.c:7839:36: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/trace/ftrace.c:7839:36: sparse: struct ftrace_ops [noderef] __rcu * kernel/trace/ftrace.c:7839:36: sparse: struct ftrace_ops * -- kernel/trace/trace_functions.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_printk.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_preemptirq.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_stat.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/pid_list.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_stack.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_output.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/trace_output.c:423:34: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_ADDR' kernel/trace/trace_output.c:436:48: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_OFFSET' kernel/trace/trace_output.c:438:25: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_ADDR' kernel/trace/trace_output.c:572:51: sparse: sparse: undefined identifier 'TRACE_ITER_VERBOSE' kernel/trace/trace_output.c:639:31: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' kernel/trace/trace_output.c:650:31: sparse: sparse: undefined identifier 'TRACE_ITER_IRQ_INFO' kernel/trace/trace_output.c:664:52: sparse: sparse: undefined identifier 'TRACE_ITER_VERBOSE' kernel/trace/trace_output.c:1130:22: sparse: sparse: undefined identifier 'TRACE_ITER_PRINT_PARENT' kernel/trace/trace_output.c:1420:31: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_USEROBJ' -- kernel/trace/trace_nop.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_irqsoff.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/trace_irqsoff.c:492:62: sparse: sparse: undefined identifier 'TRACE_ITER_FUNCTION' kernel/trace/trace_irqsoff.c:521:22: sparse: sparse: undefined identifier 'TRACE_ITER_FUNCTION' kernel/trace/trace_irqsoff.c:588:29: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace_irqsoff.c:589:29: sparse: sparse: undefined identifier 'TRACE_ITER_LATENCY_FMT' kernel/trace/trace_irqsoff.c:591:29: sparse: sparse: undefined identifier 'TRACE_ITER_PAUSE_ON_TRACE' kernel/trace/trace_irqsoff.c:611:37: sparse: sparse: undefined identifier 'TRACE_ITER_LATENCY_FMT' kernel/trace/trace_irqsoff.c:612:43: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace_irqsoff.c:613:39: sparse: sparse: undefined identifier 'TRACE_ITER_PAUSE_ON_TRACE' kernel/trace/trace_irqsoff.c:617:29: sparse: sparse: undefined identifier 'TRACE_ITER_LATENCY_FMT' kernel/trace/trace_irqsoff.c:618:29: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace_irqsoff.c:619:29: sparse: sparse: undefined identifier 'TRACE_ITER_PAUSE_ON_TRACE' -- kernel/trace/trace_sched_switch.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_branch.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_export.c: note: in included file (through kernel/trace/trace_output.h): >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_dynevent.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/ring_buffer.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_boot.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/blktrace.c: note: in included file (through kernel/trace/trace_output.h): >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/blktrace.c:1455:43: sparse: sparse: undefined identifier 'TRACE_ITER_VERBOSE' kernel/trace/blktrace.c:1520:45: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/blktrace.c:1522:44: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' -- kernel/trace/trace_kdb.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/trace_kdb.c:34:29: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_USEROBJ' -- kernel/trace/trace_kprobe.c: note: in included file (through kernel/trace/trace_dynevent.h): >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/trace_kprobe.c:1587:53: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_OFFSET' kernel/trace/trace_kprobe.c:1617:57: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_OFFSET' kernel/trace/trace_kprobe.c:1622:56: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_OFFSET' -- kernel/trace/trace_events_trigger.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_osnoise.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_probe.c: note: in included file (through kernel/trace/trace_probe.h): >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_events_filter.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : -- kernel/trace/trace_events.c: note: in included file (through kernel/trace/trace_output.h): >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/trace_events.c:848:47: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_CMD' kernel/trace/trace_events.c:854:47: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' -- kernel/trace/trace.c: note: in included file: >> kernel/trace/trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/trace.h:1427:27: sparse: sparse: got : kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_FUNCTION' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_PRINT_PARENT' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_ANNOTATE' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_CMD' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_IRQ_INFO' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_MARKERS' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_HASH_PTR' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_TRACE_PRINTK' kernel/trace/trace.c:537:24: sparse: sparse: undefined identifier 'TRACE_ITER_COPY_MARKER' kernel/trace/trace.c:561:39: sparse: sparse: undefined identifier 'TRACE_ITER_TRACE_PRINTK' kernel/trace/trace.c:563:28: sparse: sparse: undefined identifier 'TRACE_ITER_TRACE_PRINTK' kernel/trace/trace.c:576:36: sparse: sparse: undefined identifier 'TRACE_ITER_COPY_MARKER' kernel/trace/trace.c:584:29: sparse: sparse: undefined identifier 'TRACE_ITER_COPY_MARKER' kernel/trace/trace.c:1142:33: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:1208:33: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:3487:33: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:3524:43: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:3794:50: sparse: sparse: undefined identifier 'TRACE_ITER_HASH_PTR' kernel/trace/trace.c:4116:29: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' kernel/trace/trace.c:4127:29: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' kernel/trace/trace.c:4146:63: sparse: sparse: undefined identifier 'TRACE_ITER_PRINT_PARENT' kernel/trace/trace.c:4146:63: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_OFFSET' kernel/trace/trace.c:4146:63: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_ADDR' kernel/trace/trace.c:4200:33: sparse: sparse: undefined identifier 'TRACE_ITER_ANNOTATE' kernel/trace/trace.c:4226:54: sparse: sparse: undefined identifier 'TRACE_ITER_PRINT_PARENT' kernel/trace/trace.c:4226:54: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_OFFSET' kernel/trace/trace.c:4226:54: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_ADDR' kernel/trace/trace.c:4236:31: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/trace.c:4247:39: sparse: sparse: undefined identifier 'TRACE_ITER_FIELDS' kernel/trace/trace.c:4275:31: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/trace.c:4301:31: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/trace.c:4330:31: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/trace.c:4401:39: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:4406:39: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:4411:39: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:4415:27: sparse: sparse: undefined identifier 'TRACE_ITER_BIN' kernel/trace/trace.c:4418:27: sparse: sparse: undefined identifier 'TRACE_ITER_HEX' kernel/trace/trace.c:4421:27: sparse: sparse: undefined identifier 'TRACE_ITER_RAW' kernel/trace/trace.c:4439:33: sparse: sparse: undefined identifier 'TRACE_ITER_VERBOSE' kernel/trace/trace.c:4449:29: sparse: sparse: undefined identifier 'TRACE_ITER_CONTEXT_INFO' kernel/trace/trace.c:4457:37: sparse: sparse: undefined identifier 'TRACE_ITER_VERBOSE' kernel/trace/trace.c:4460:37: sparse: sparse: undefined identifier 'TRACE_ITER_VERBOSE' kernel/trace/trace.c:4461:43: sparse: sparse: undefined identifier 'TRACE_ITER_IRQ_INFO' kernel/trace/trace.c:4685:51: sparse: sparse: undefined identifier 'TRACE_ITER_PAUSE_ON_TRACE' kernel/trace/trace.c:4885:44: sparse: sparse: undefined identifier 'TRACE_ITER_LATENCY_FMT' kernel/trace/trace.c:5212:40: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace.c:5220:22: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' kernel/trace/trace.c:5235:21: sparse: sparse: undefined identifier 'TRACE_ITER_TRACE_PRINTK' kernel/trace/trace.c:5254:21: sparse: sparse: undefined identifier 'TRACE_ITER_COPY_MARKER' kernel/trace/trace.c:5262:21: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_CMD' kernel/trace/trace.c:5265:21: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' kernel/trace/trace.c:5268:45: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_TGID' kernel/trace/trace.c:5275:21: sparse: sparse: undefined identifier 'TRACE_ITER_EVENT_FORK' kernel/trace/trace.c:5278:21: sparse: sparse: undefined identifier 'TRACE_ITER_FUNC_FORK' kernel/trace/trace.c:5281:21: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace.c:5288:21: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:6548:31: sparse: sparse: undefined identifier 'TRACE_ITER_LATENCY_FMT' kernel/trace/trace.c:6609:31: sparse: sparse: undefined identifier 'TRACE_ITER_BLOCK' kernel/trace/trace.c:7161:31: sparse: sparse: undefined identifier 'TRACE_ITER_STOP_ON_FREE' kernel/trace/trace.c:7264:33: sparse: sparse: undefined identifier 'TRACE_ITER_MARKERS' kernel/trace/trace.c:7345:33: sparse: sparse: undefined identifier 'TRACE_ITER_MARKERS' kernel/trace/trace.c:9332:37: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK' kernel/trace/trace.c:9332:37: sparse: sparse: undefined identifier 'TRACE_ITER_PRINTK_MSGONLY' kernel/trace/trace.c:9332:37: sparse: sparse: undefined identifier 'TRACE_ITER_RECORD_CMD' kernel/trace/trace.c:9655:38: sparse: sparse: undefined identifier 'TRACE_ITER_OVERWRITE' kernel/trace/trace.c:9848:55: sparse: sparse: undefined identifier 'TRACE_ITER_EVENT_FORK' kernel/trace/trace.c:9848:55: sparse: sparse: undefined identifier 'TRACE_ITER_FUNC_FORK' kernel/trace/trace.c:9848:55: sparse: sparse: undefined identifier 'TRACE_ITER_TRACE_PRINTK' kernel/trace/trace.c:9848:55: sparse: sparse: undefined identifier 'TRACE_ITER_COPY_MARKER' kernel/trace/trace.c:10017:32: sparse: sparse: undefined identifier 'TRACE_ITER_EVENT_FORK' kernel/trace/trace.c:10017:32: sparse: sparse: undefined identifier 'TRACE_ITER_FUNC_FORK' kernel/trace/trace.c:10017:32: sparse: sparse: undefined identifier 'TRACE_ITER_TRACE_PRINTK' kernel/trace/trace.c:10017:32: sparse: sparse: undefined identifier 'TRACE_ITER_COPY_MARKER' kernel/trace/trace.c:10609:41: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_USEROBJ' kernel/trace/trace.c:10612:29: sparse: sparse: undefined identifier 'TRACE_ITER_SYM_USEROBJ' kernel/trace/trace.c:454:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/trace/trace.c:454:9: sparse: struct trace_export [noderef] __rcu * kernel/trace/trace.c:454:9: sparse: struct trace_export * kernel/trace/trace.c:469:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/trace/trace.c:469:9: sparse: struct trace_export [noderef] __rcu * kernel/trace/trace.c:469:9: sparse: struct trace_export * kernel/trace/trace.c:3081:33: sparse: sparse: undefined identifier 'TRACE_ITER_STACKTRACE' vim +1427 kernel/trace/trace.h 1426 > 1427 enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; 1428 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options 2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google) ` (2 preceding siblings ...) 2025-10-18 17:19 ` kernel test robot @ 2025-10-18 20:04 ` kernel test robot 3 siblings, 0 replies; 9+ messages in thread From: kernel test robot @ 2025-10-18 20:04 UTC (permalink / raw) To: Masami Hiramatsu (Google), Steven Rostedt Cc: oe-kbuild-all, Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel Hi Masami, kernel test robot noticed the following build warnings: [auto build test WARNING on trace/for-next] [also build test WARNING on linus/master v6.18-rc1 next-20251017] [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/Masami-Hiramatsu-Google/tracing-Allow-tracer-to-add-more-than-32-options/20251018-004104 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/176071774097.175601.10233017390618260565.stgit%40devnote2 patch subject: [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options config: i386-randconfig-063-20251018 (https://download.01.org/0day-ci/archive/20251019/202510190313.fYtuvG3l-lkp@intel.com/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251019/202510190313.fYtuvG3l-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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202510190313.fYtuvG3l-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) kernel/trace/rv/rv.c: note: in included file (through kernel/trace/rv/rv.h): >> kernel/trace/rv/../trace.h:1427:27: sparse: sparse: missing identifier in declaration kernel/trace/rv/../trace.h:1427:27: sparse: sparse: Expected ; at the end of type declaration kernel/trace/rv/../trace.h:1427:27: sparse: sparse: got : vim +1427 kernel/trace/rv/../trace.h 1426 > 1427 enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; 1428 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler 2025-10-17 16:15 [PATCH v4 0/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google) 2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google) @ 2025-10-17 16:15 ` Masami Hiramatsu (Google) 2025-10-18 12:16 ` kernel test robot 1 sibling, 1 reply; 9+ messages in thread From: Masami Hiramatsu (Google) @ 2025-10-17 16:15 UTC (permalink / raw) To: Steven Rostedt Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel From: Masami Hiramatsu (Google) <mhiramat@kernel.org> Function profiler shows the hit count of each function using its symbol name. However, there are some same-name local symbols, which we can not distinguish. To solve this issue, this introduces an option to show the symbols in "_text+OFFSET" format. This can avoid exposing the random shift of KASLR. The functions in modules are shown as "MODNAME+OFFSET" where the offset is from ".text". E.g. for the kernel text symbols, specify vmlinux and the output to addr2line, you can find the actual function and source info; $ addr2line -fie vmlinux _text+3078208 __balance_callbacks kernel/sched/core.c:5064 for modules, specify the module file and .text+OFFSET; $ addr2line -fie samples/trace_events/trace-events-sample.ko .text+8224 do_simple_thread_func samples/trace_events/trace-events-sample.c:23 Suggested-by: Steven Rostedt (Google) <rostedt@goodmis.org> Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> --- Changes in v2: - Define a dummy TRACE_ITER_PROF_TEXT_OFFSET if CONFIG_FUNCTION_PROFILER=n. --- kernel/trace/ftrace.c | 26 +++++++++++++++++++++++++- kernel/trace/trace.c | 5 +++-- kernel/trace/trace.h | 11 ++++++++++- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 00b76d450a89..d4802bb93793 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -534,7 +534,9 @@ static int function_stat_headers(struct seq_file *m) static int function_stat_show(struct seq_file *m, void *v) { + struct trace_array *tr = trace_get_global_array(); struct ftrace_profile *rec = v; + const char *refsymbol = NULL; char str[KSYM_SYMBOL_LEN]; #ifdef CONFIG_FUNCTION_GRAPH_TRACER static struct trace_seq s; @@ -554,7 +556,29 @@ static int function_stat_show(struct seq_file *m, void *v) return 0; #endif - kallsyms_lookup(rec->ip, NULL, NULL, NULL, str); + if (tr->trace_flags & TRACE_ITER_PROF_TEXT_OFFSET) { + long offset; + + if (core_kernel_text(rec->ip)) { + refsymbol = "_text"; + offset = rec->ip - (unsigned long)_text; + } else { + struct module *mod; + + guard(rcu)(); + mod = __module_text_address(rec->ip); + if (mod) { + refsymbol = mod->name; + /* Calculate offset from module's text entry address. */ + offset = rec->ip - (unsigned long)mod->mem[MOD_TEXT].base; + } + } + if (refsymbol) + snprintf(str, sizeof(str), " %s%+ld", refsymbol, offset); + } + if (!refsymbol) + kallsyms_lookup(rec->ip, NULL, NULL, NULL, str); + seq_printf(m, " %-30.30s %10lu", str, rec->counter); #ifdef CONFIG_FUNCTION_GRAPH_TRACER diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 2b3fe0a30c7d..9f254c290bcd 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -522,7 +522,8 @@ EXPORT_SYMBOL_GPL(unregister_ftrace_export); /* trace_options that are only supported by global_trace */ #define TOP_LEVEL_TRACE_FLAGS (TRACE_ITER_PRINTK | \ - TRACE_ITER_PRINTK_MSGONLY | TRACE_ITER_RECORD_CMD) + TRACE_ITER_PRINTK_MSGONLY | TRACE_ITER_RECORD_CMD | \ + TRACE_ITER_PROF_TEXT_OFFSET) /* trace_flags that are default zero for instances */ #define ZEROED_TRACE_FLAGS \ @@ -11106,7 +11107,7 @@ __init static int tracer_alloc_buffers(void) #ifdef CONFIG_FUNCTION_TRACER /* Used to set module cached ftrace filtering at boot up */ -__init struct trace_array *trace_get_global_array(void) +struct trace_array *trace_get_global_array(void) { return &global_trace; } diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index caec534072e7..3d034dd753c6 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -1353,6 +1353,14 @@ extern int trace_get_user(struct trace_parser *parser, const char __user *ubuf, # define STACK_FLAGS #endif +#ifdef CONFIG_FUNCTION_PROFILER +# define PROFILER_FLAGS \ + C(PROF_TEXT_OFFSET, "prof-text-offset"), +#else +# define PROFILER_FLAGS +# define TRACE_ITER_PROF_TEXT_OFFSET 0UL +#endif + /* * trace_iterator_flags is an enumeration that defines bit * positions into trace_flags that controls the output. @@ -1391,7 +1399,8 @@ extern int trace_get_user(struct trace_parser *parser, const char __user *ubuf, FUNCTION_FLAGS \ FGRAPH_FLAGS \ STACK_FLAGS \ - BRANCH_FLAGS + BRANCH_FLAGS \ + PROFILER_FLAGS /* * By defining C, we can make TRACE_FLAGS a list of bit names ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler 2025-10-17 16:15 ` [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google) @ 2025-10-18 12:16 ` kernel test robot 0 siblings, 0 replies; 9+ messages in thread From: kernel test robot @ 2025-10-18 12:16 UTC (permalink / raw) To: Masami Hiramatsu (Google), Steven Rostedt Cc: oe-kbuild-all, Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, linux-kernel, linux-trace-kernel Hi Masami, kernel test robot noticed the following build errors: [auto build test ERROR on trace/for-next] [also build test ERROR on linus/master v6.18-rc1 next-20251017] [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/Masami-Hiramatsu-Google/tracing-Allow-tracer-to-add-more-than-32-options/20251018-004104 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/176071775059.175601.3827350589430991963.stgit%40devnote2 patch subject: [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20251018/202510181934.DYd8mdHX-lkp@intel.com/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251018/202510181934.DYd8mdHX-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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202510181934.DYd8mdHX-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from kernel/trace/trace_output.h:6, from kernel/trace/ftrace.c:45: >> kernel/trace/trace.h:1434:34: error: enumerator value outside the range of underlying type 1434 | #define C(a, b) TRACE_ITER_##a = (1 << TRACE_ITER_##a##_BIT) | ^ kernel/trace/trace.h:1369:17: note: in expansion of macro 'C' 1369 | C(PROF_TEXT_OFFSET, "prof-text-offset"), | ^ kernel/trace/trace.h:1414:17: note: in expansion of macro 'PROFILER_FLAGS' 1414 | PROFILER_FLAGS | ^~~~~~~~~~~~~~ kernel/trace/trace.h:1436:40: note: in expansion of macro 'TRACE_FLAGS' 1436 | enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; | ^~~~~~~~~~~ -- In file included from kernel/trace/trace_probe.h:31, from kernel/trace/bpf_trace.c:35: >> kernel/trace/trace.h:1434:34: error: enumerator value outside the range of underlying type 1434 | #define C(a, b) TRACE_ITER_##a = (1 << TRACE_ITER_##a##_BIT) | ^ kernel/trace/trace.h:1369:17: note: in expansion of macro 'C' 1369 | C(PROF_TEXT_OFFSET, "prof-text-offset"), | ^ kernel/trace/trace.h:1414:17: note: in expansion of macro 'PROFILER_FLAGS' 1414 | PROFILER_FLAGS | ^~~~~~~~~~~~~~ kernel/trace/trace.h:1436:40: note: in expansion of macro 'TRACE_FLAGS' 1436 | enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; | ^~~~~~~~~~~ kernel/trace/bpf_trace.c: In function '____bpf_trace_printk': kernel/trace/bpf_trace.c:378:9: warning: function '____bpf_trace_printk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 378 | ret = bstr_printf(data.buf, MAX_BPRINTF_BUF, fmt, data.bin_args); | ^~~ kernel/trace/bpf_trace.c: In function '____bpf_trace_vprintk': kernel/trace/bpf_trace.c:434:9: warning: function '____bpf_trace_vprintk' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 434 | ret = bstr_printf(data.buf, MAX_BPRINTF_BUF, fmt, data.bin_args); | ^~~ kernel/trace/bpf_trace.c: In function '____bpf_seq_printf': kernel/trace/bpf_trace.c:476:9: warning: function '____bpf_seq_printf' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 476 | seq_bprintf(m, fmt, data.bin_args); | ^~~~~~~~~~~ -- In file included from kernel/trace/rv/rv.h:9, from kernel/trace/rv/rv.c:151: >> kernel/trace/rv/../trace.h:1434:34: error: enumerator value outside the range of underlying type 1434 | #define C(a, b) TRACE_ITER_##a = (1 << TRACE_ITER_##a##_BIT) | ^ kernel/trace/rv/../trace.h:1369:17: note: in expansion of macro 'C' 1369 | C(PROF_TEXT_OFFSET, "prof-text-offset"), | ^ kernel/trace/rv/../trace.h:1414:17: note: in expansion of macro 'PROFILER_FLAGS' 1414 | PROFILER_FLAGS | ^~~~~~~~~~~~~~ kernel/trace/rv/../trace.h:1436:40: note: in expansion of macro 'TRACE_FLAGS' 1436 | enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; | ^~~~~~~~~~~ vim +1434 kernel/trace/trace.h a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1428) a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1429) /* a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1430) * By redefining C, we can make TRACE_FLAGS a list of masks that a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1431) * use the bits as defined above. a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1432) */ a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1433) #undef C a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 @1434) #define C(a, b) TRACE_ITER_##a = (1 << TRACE_ITER_##a##_BIT) a3418a364ec3c8 Steven Rostedt (Red Hat 2015-09-29 1435) -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-10-21 0:11 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-10-17 16:15 [PATCH v4 0/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google) 2025-10-17 16:15 ` [PATCH v4 1/2] tracing: Allow tracer to add more than 32 options Masami Hiramatsu (Google) 2025-10-18 10:10 ` kernel test robot 2025-10-21 0:11 ` Masami Hiramatsu 2025-10-18 11:01 ` kernel test robot 2025-10-18 17:19 ` kernel test robot 2025-10-18 20:04 ` kernel test robot 2025-10-17 16:15 ` [PATCH v4 2/2] tracing: Add an option to show symbols in _text+offset for function profiler Masami Hiramatsu (Google) 2025-10-18 12:16 ` kernel test robot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).