linux-trace-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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

* [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 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-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 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

* 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

* 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

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