[PATCH v2 1/2] tracing: Have eprobes have their own config option

Steven Rostedt posted 2 patches 2 months, 1 week ago
There is a newer version of this series
[PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Steven Rostedt 2 months, 1 week ago
From: Steven Rostedt <rostedt@goodmis.org>

Eprobes were added in 5.15 and were selected whenever any of the other
probe events were selected. If kprobe events were enabled (which it is by
default if kprobes are enabled) it would enable eprobe events as well. The
same for uprobes and fprobes.

Have eprobes have its own config and it gets enabled by default if tracing
is enabled.

Link: https://lore.kernel.org/all/20250729102636.b7cce553e7cc263722b12365@kernel.org/

Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 kernel/trace/Kconfig  | 13 +++++++++++++
 kernel/trace/Makefile |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index 93e8e7fc11c0..b951c027fffb 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -792,6 +792,19 @@ config UPROBE_EVENTS
 	  This option is required if you plan to use perf-probe subcommand
 	  of perf tools on user space applications.
 
+config EPROBE_EVENTS
+	bool "Enable event-based dynamic events"
+	depends on TRACING
+	select PROBE_EVENTS
+	select DYNAMIC_EVENTS
+	default y
+	help
+	  Eprobes are dynamic events that can be placed on other existing
+	  events. It can be used to limit what fields are recorded in
+	  an event or even dereference a field of an event. It can
+	  convert the type of an event field. For example, turn an
+	  address into a string.
+
 config BPF_EVENTS
 	depends on BPF_SYSCALL
 	depends on (KPROBE_EVENTS || UPROBE_EVENTS) && PERF_EVENTS
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index 057cd975d014..dcb4e02afc5f 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -82,7 +82,7 @@ obj-$(CONFIG_EVENT_TRACING) += trace_event_perf.o
 endif
 obj-$(CONFIG_EVENT_TRACING) += trace_events_filter.o
 obj-$(CONFIG_EVENT_TRACING) += trace_events_trigger.o
-obj-$(CONFIG_PROBE_EVENTS) += trace_eprobe.o
+obj-$(CONFIG_EPROBE_EVENTS) += trace_eprobe.o
 obj-$(CONFIG_TRACE_EVENT_INJECT) += trace_events_inject.o
 obj-$(CONFIG_SYNTH_EVENTS) += trace_events_synth.o
 obj-$(CONFIG_HIST_TRIGGERS) += trace_events_hist.o
-- 
2.47.2
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by kernel test robot 2 months, 1 week ago
Hi Steven,

kernel test robot noticed the following build errors:

[auto build test ERROR on trace/for-next]
[also build test ERROR on lwn/docs-next akpm-mm/mm-everything linus/master v6.16 next-20250729]
[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/Steven-Rostedt/tracing-Have-eprobes-have-their-own-config-option/20250730-001958
base:   https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next
patch link:    https://lore.kernel.org/r/20250729161912.056641407%40kernel.org
patch subject: [PATCH v2 1/2] tracing: Have eprobes have their own config option
config: xtensa-randconfig-002-20250730 (https://download.01.org/0day-ci/archive/20250730/202507301452.JPAcMvT0-lkp@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250730/202507301452.JPAcMvT0-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/202507301452.JPAcMvT0-lkp@intel.com/

All errors (new ones prefixed by >>):

   kernel/trace/trace_probe.c: In function 'parse_probe_arg':
>> kernel/trace/trace_probe.c:1105:23: error: implicit declaration of function 'regs_query_register_offset'; did you mean 'ftrace_regs_query_register_offset'? [-Werror=implicit-function-declaration]
    1105 |                 ret = regs_query_register_offset(arg + 1);
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
         |                       ftrace_regs_query_register_offset
   cc1: some warnings being treated as errors


vim +1105 kernel/trace/trace_probe.c

a42e3c4de9642d Masami Hiramatsu          2019-06-20  1080  
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1081  /* Recursive argument parser */
533059281ee594 Masami Hiramatsu          2018-04-25  1082  static int
533059281ee594 Masami Hiramatsu          2018-04-25  1083  parse_probe_arg(char *arg, const struct fetch_type *type,
533059281ee594 Masami Hiramatsu          2018-04-25  1084  		struct fetch_insn **pcode, struct fetch_insn *end,
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1085) 		struct traceprobe_parse_context *ctx)
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1086  {
533059281ee594 Masami Hiramatsu          2018-04-25  1087  	struct fetch_insn *code = *pcode;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1088  	unsigned long param;
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1089  	int deref = FETCH_OP_DEREF;
bf173ca92da978 Steven Rostedt (VMware    2018-10-12  1090) 	long offset = 0;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1091  	char *tmp;
34fee3a104cea1 Namhyung Kim              2013-11-26  1092  	int ret = 0;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1093  
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1094  	switch (arg[0]) {
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1095  	case '$':
d157d7694460b9 Masami Hiramatsu (Google  2023-08-23  1096) 		ret = parse_probe_vars(arg, type, pcode, end, ctx);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1097  		break;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1098  
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1099  	case '%':	/* named register */
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1100) 		if (ctx->flags & (TPARG_FL_TEVENT | TPARG_FL_FPROBE)) {
334e5519c37570 Masami Hiramatsu (Google  2023-06-06  1101) 			/* eprobe and fprobe do not handle registers */
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1102) 			trace_probe_log_err(ctx->offset, BAD_VAR);
2673c60ee67e71 Steven Rostedt (Google    2022-08-20  1103) 			break;
2673c60ee67e71 Steven Rostedt (Google    2022-08-20  1104) 		}
8ab83f56475ec9 Srikar Dronamraju         2012-04-09 @1105  		ret = regs_query_register_offset(arg + 1);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1106  		if (ret >= 0) {
533059281ee594 Masami Hiramatsu          2018-04-25  1107  			code->op = FETCH_OP_REG;
533059281ee594 Masami Hiramatsu          2018-04-25  1108  			code->param = (unsigned int)ret;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1109  			ret = 0;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1110  		} else
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1111) 			trace_probe_log_err(ctx->offset, BAD_REG_NAME);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1112  		break;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1113  
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1114  	case '@':	/* memory, file-offset or symbol */
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1115  		if (isdigit(arg[1])) {
bcd83ea6cbfee5 Daniel Walter             2012-09-26  1116  			ret = kstrtoul(arg + 1, 0, &param);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1117  			if (ret) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1118) 				trace_probe_log_err(ctx->offset, BAD_MEM_ADDR);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1119  				break;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1120  			}
533059281ee594 Masami Hiramatsu          2018-04-25  1121  			/* load address */
533059281ee594 Masami Hiramatsu          2018-04-25  1122  			code->op = FETCH_OP_IMM;
533059281ee594 Masami Hiramatsu          2018-04-25  1123  			code->immediate = param;
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1124  		} else if (arg[1] == '+') {
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1125  			/* kprobes don't support file offsets */
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1126) 			if (ctx->flags & TPARG_FL_KERNEL) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1127) 				trace_probe_log_err(ctx->offset, FILE_ON_KPROBE);
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1128  				return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1129  			}
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1130  			ret = kstrtol(arg + 2, 0, &offset);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1131  			if (ret) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1132) 				trace_probe_log_err(ctx->offset, BAD_FILE_OFFS);
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1133  				break;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1134  			}
b7e0bf341f6cfa Namhyung Kim              2013-11-25  1135  
533059281ee594 Masami Hiramatsu          2018-04-25  1136  			code->op = FETCH_OP_FOFFS;
533059281ee594 Masami Hiramatsu          2018-04-25  1137  			code->immediate = (unsigned long)offset;  // imm64?
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1138  		} else {
b079d374fd8463 Namhyung Kim              2013-07-03  1139  			/* uprobes don't support symbols */
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1140) 			if (!(ctx->flags & TPARG_FL_KERNEL)) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1141) 				trace_probe_log_err(ctx->offset, SYM_ON_UPROBE);
b079d374fd8463 Namhyung Kim              2013-07-03  1142  				return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1143  			}
a6682814f37124 Masami Hiramatsu          2018-08-29  1144  			/* Preserve symbol for updating */
a6682814f37124 Masami Hiramatsu          2018-08-29  1145  			code->op = FETCH_NOP_SYMBOL;
a6682814f37124 Masami Hiramatsu          2018-08-29  1146  			code->data = kstrdup(arg + 1, GFP_KERNEL);
a6682814f37124 Masami Hiramatsu          2018-08-29  1147  			if (!code->data)
a6682814f37124 Masami Hiramatsu          2018-08-29  1148  				return -ENOMEM;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1149  			if (++code == end) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1150) 				trace_probe_log_err(ctx->offset, TOO_MANY_OPS);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1151  				return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1152  			}
533059281ee594 Masami Hiramatsu          2018-04-25  1153  			code->op = FETCH_OP_IMM;
a6682814f37124 Masami Hiramatsu          2018-08-29  1154  			code->immediate = 0;
533059281ee594 Masami Hiramatsu          2018-04-25  1155  		}
533059281ee594 Masami Hiramatsu          2018-04-25  1156  		/* These are fetching from memory */
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1157  		if (++code == end) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1158) 			trace_probe_log_err(ctx->offset, TOO_MANY_OPS);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1159  			return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1160  		}
533059281ee594 Masami Hiramatsu          2018-04-25  1161  		*pcode = code;
533059281ee594 Masami Hiramatsu          2018-04-25  1162  		code->op = FETCH_OP_DEREF;
533059281ee594 Masami Hiramatsu          2018-04-25  1163  		code->offset = offset;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1164  		break;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1165  
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1166  	case '+':	/* deref memory */
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1167  	case '-':
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1168  		if (arg[1] == 'u') {
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1169  			deref = FETCH_OP_UDEREF;
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1170  			arg[1] = arg[0];
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1171  			arg++;
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1172  		}
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1173  		if (arg[0] == '+')
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1174  			arg++;	/* Skip '+', because kstrtol() rejects it. */
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1175  		tmp = strchr(arg, '(');
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1176  		if (!tmp) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1177) 			trace_probe_log_err(ctx->offset, DEREF_NEED_BRACE);
533059281ee594 Masami Hiramatsu          2018-04-25  1178  			return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1179  		}
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1180  		*tmp = '\0';
bcd83ea6cbfee5 Daniel Walter             2012-09-26  1181  		ret = kstrtol(arg, 0, &offset);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1182  		if (ret) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1183) 			trace_probe_log_err(ctx->offset, BAD_DEREF_OFFS);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1184  			break;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1185  		}
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1186) 		ctx->offset += (tmp + 1 - arg) + (arg[0] != '-' ? 1 : 0);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1187  		arg = tmp + 1;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1188  		tmp = strrchr(arg, ')');
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1189  		if (!tmp) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1190) 			trace_probe_log_err(ctx->offset + strlen(arg),
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1191  					    DEREF_OPEN_BRACE);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1192  			return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1193  		} else {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1194) 			const struct fetch_type *t2 = find_fetch_type(NULL, ctx->flags);
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1195) 			int cur_offs = ctx->offset;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1196  
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1197  			*tmp = '\0';
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1198) 			ret = parse_probe_arg(arg, t2, &code, end, ctx);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1199  			if (ret)
533059281ee594 Masami Hiramatsu          2018-04-25  1200  				break;
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1201) 			ctx->offset = cur_offs;
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1202  			if (code->op == FETCH_OP_COMM ||
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1203  			    code->op == FETCH_OP_DATA) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1204) 				trace_probe_log_err(ctx->offset, COMM_CANT_DEREF);
533059281ee594 Masami Hiramatsu          2018-04-25  1205  				return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1206  			}
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1207  			if (++code == end) {
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1208) 				trace_probe_log_err(ctx->offset, TOO_MANY_OPS);
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1209  				return -EINVAL;
ab105a4fb89496 Masami Hiramatsu          2019-03-31  1210  			}
533059281ee594 Masami Hiramatsu          2018-04-25  1211  			*pcode = code;
533059281ee594 Masami Hiramatsu          2018-04-25  1212  
e65f7ae7f4da56 Masami Hiramatsu          2019-05-15  1213  			code->op = deref;
533059281ee594 Masami Hiramatsu          2018-04-25  1214  			code->offset = offset;
c440adfbe30257 Masami Hiramatsu (Google  2023-08-23  1215) 			/* Reset the last type if used */
c440adfbe30257 Masami Hiramatsu (Google  2023-08-23  1216) 			ctx->last_type = NULL;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1217  		}
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1218  		break;
6218bf9f4d2942 Masami Hiramatsu          2019-06-20  1219  	case '\\':	/* Immediate value */
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1220  		if (arg[1] == '"') {	/* Immediate string */
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1221) 			ret = __parse_imm_string(arg + 2, &tmp, ctx->offset + 2);
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1222  			if (ret)
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1223  				break;
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1224  			code->op = FETCH_OP_DATA;
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1225  			code->data = tmp;
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1226  		} else {
6218bf9f4d2942 Masami Hiramatsu          2019-06-20  1227  			ret = str_to_immediate(arg + 1, &code->immediate);
6218bf9f4d2942 Masami Hiramatsu          2019-06-20  1228  			if (ret)
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1229) 				trace_probe_log_err(ctx->offset + 1, BAD_IMM);
6218bf9f4d2942 Masami Hiramatsu          2019-06-20  1230  			else
6218bf9f4d2942 Masami Hiramatsu          2019-06-20  1231  				code->op = FETCH_OP_IMM;
a42e3c4de9642d Masami Hiramatsu          2019-06-20  1232  		}
6218bf9f4d2942 Masami Hiramatsu          2019-06-20  1233  		break;
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1234) 	default:
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1235) 		if (isalpha(arg[0]) || arg[0] == '_') {	/* BTF variable */
25f00e40ce7953 Masami Hiramatsu (Google  2024-03-04  1236) 			if (!tparg_is_function_entry(ctx->flags) &&
25f00e40ce7953 Masami Hiramatsu (Google  2024-03-04  1237) 			    !tparg_is_function_return(ctx->flags)) {
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1238) 				trace_probe_log_err(ctx->offset, NOSUP_BTFARG);
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1239) 				return -EINVAL;
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1240) 			}
c440adfbe30257 Masami Hiramatsu (Google  2023-08-23  1241) 			ret = parse_btf_arg(arg, pcode, end, ctx);
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1242) 			break;
b576e09701c7d0 Masami Hiramatsu (Google  2023-06-06  1243) 		}
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1244  	}
533059281ee594 Masami Hiramatsu          2018-04-25  1245  	if (!ret && code->op == FETCH_OP_NOP) {
533059281ee594 Masami Hiramatsu          2018-04-25  1246  		/* Parsed, but do not find fetch method */
1b8b0cd754cdbb Masami Hiramatsu (Google  2023-06-06  1247) 		trace_probe_log_err(ctx->offset, BAD_FETCH_ARG);
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1248  		ret = -EINVAL;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1249  	}
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1250  	return ret;
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1251  }
8ab83f56475ec9 Srikar Dronamraju         2012-04-09  1252  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Masami Hiramatsu (Google) 2 months, 1 week ago
On Wed, 30 Jul 2025 14:27:08 +0800
kernel test robot <lkp@intel.com> wrote:

> Hi Steven,
> 
> kernel test robot noticed the following build errors:
> 
> [auto build test ERROR on trace/for-next]
> [also build test ERROR on lwn/docs-next akpm-mm/mm-everything linus/master v6.16 next-20250729]
> [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/Steven-Rostedt/tracing-Have-eprobes-have-their-own-config-option/20250730-001958
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next
> patch link:    https://lore.kernel.org/r/20250729161912.056641407%40kernel.org
> patch subject: [PATCH v2 1/2] tracing: Have eprobes have their own config option
> config: xtensa-randconfig-002-20250730 (https://download.01.org/0day-ci/archive/20250730/202507301452.JPAcMvT0-lkp@intel.com/config)
> compiler: xtensa-linux-gcc (GCC) 12.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250730/202507301452.JPAcMvT0-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/202507301452.JPAcMvT0-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
>    kernel/trace/trace_probe.c: In function 'parse_probe_arg':
> >> kernel/trace/trace_probe.c:1105:23: error: implicit declaration of function 'regs_query_register_offset'; did you mean 'ftrace_regs_query_register_offset'? [-Werror=implicit-function-declaration]
>     1105 |                 ret = regs_query_register_offset(arg + 1);
>          |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
>          |                       ftrace_regs_query_register_offset
>    cc1: some warnings being treated as errors


Interesting, this find another issue. Since this is provided by
CONFIG_PROBE_EVENTS, we need to fix CONFIG_PROBE_EVENTS depending
on HAVE_REGS_AND_STACK_ACCESS_API.

diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index a3f35c7d83b6..cd239240b0ef 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -792,6 +792,7 @@ config DYNAMIC_EVENTS
        def_bool n
 
 config PROBE_EVENTS
+       depends on HAVE_REGS_AND_STACK_ACCESS_API
        def_bool n
 
 config BPF_KPROBE_OVERRIDE

-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Steven Rostedt 2 months, 1 week ago
On Wed, 30 Jul 2025 19:11:01 +0900
Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:

> Interesting, this find another issue. Since this is provided by
> CONFIG_PROBE_EVENTS, we need to fix CONFIG_PROBE_EVENTS depending
> on HAVE_REGS_AND_STACK_ACCESS_API.
> 
> diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> index a3f35c7d83b6..cd239240b0ef 100644
> --- a/kernel/trace/Kconfig
> +++ b/kernel/trace/Kconfig
> @@ -792,6 +792,7 @@ config DYNAMIC_EVENTS
>         def_bool n
>  
>  config PROBE_EVENTS
> +       depends on HAVE_REGS_AND_STACK_ACCESS_API
>         def_bool n
>  
>  config BPF_KPROBE_OVERRIDE

OK, I'll send a v2.

Did you want to take this in the tracing pull request?

I see you already did the probe pull request.

-- Steve
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Masami Hiramatsu (Google) 2 months, 1 week ago
On Wed, 30 Jul 2025 09:17:27 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Wed, 30 Jul 2025 19:11:01 +0900
> Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:
> 
> > Interesting, this find another issue. Since this is provided by
> > CONFIG_PROBE_EVENTS, we need to fix CONFIG_PROBE_EVENTS depending
> > on HAVE_REGS_AND_STACK_ACCESS_API.
> > 
> > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> > index a3f35c7d83b6..cd239240b0ef 100644
> > --- a/kernel/trace/Kconfig
> > +++ b/kernel/trace/Kconfig
> > @@ -792,6 +792,7 @@ config DYNAMIC_EVENTS
> >         def_bool n
> >  
> >  config PROBE_EVENTS
> > +       depends on HAVE_REGS_AND_STACK_ACCESS_API
> >         def_bool n
> >  
> >  config BPF_KPROBE_OVERRIDE
> 
> OK, I'll send a v2.
> 
> Did you want to take this in the tracing pull request?
> 
> I see you already did the probe pull request.

Ah, I thought this was for the next one... (but I think it is a kind of bugfix?)

Thank you,

> 
> -- Steve


-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Steven Rostedt 2 months, 1 week ago
On Wed, 30 Jul 2025 22:57:22 +0900
Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:

> > I see you already did the probe pull request.  
> 
> Ah, I thought this was for the next one... (but I think it is a kind of bugfix?)

Yeah, as its not adding eprobes, but just making it configurable.

But you haven't answered my question ;-)

Do you want to push it to Linus or should I?

I still have the trace/for-next to push (I've finished testing your last
"attribute" patch and now I'm just letting it simmer in linux-next before
doing the pull request). I can still add this to that one if you want.

-- Steve
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Masami Hiramatsu (Google) 2 months ago
On Wed, 30 Jul 2025 10:01:55 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Wed, 30 Jul 2025 22:57:22 +0900
> Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:
> 
> > > I see you already did the probe pull request.  
> > 
> > Ah, I thought this was for the next one... (but I think it is a kind of bugfix?)
> 
> Yeah, as its not adding eprobes, but just making it configurable.
> 
> But you haven't answered my question ;-)
> 
> Do you want to push it to Linus or should I?
> 
> I still have the trace/for-next to push (I've finished testing your last
> "attribute" patch and now I'm just letting it simmer in linux-next before
> doing the pull request). I can still add this to that one if you want.
> 

OK, could you push this to Linus?

Thanks,

> -- Steve
> 


-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Steven Rostedt 2 months ago
On Thu, 31 Jul 2025 07:08:36 +0900
Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:

> > I still have the trace/for-next to push (I've finished testing your last
> > "attribute" patch and now I'm just letting it simmer in linux-next before
> > doing the pull request). I can still add this to that one if you want.
> >   
> 
> OK, could you push this to Linus?

Will do later today.

Thanks,

-- Steve
Re: [PATCH v2 1/2] tracing: Have eprobes have their own config option
Posted by Masami Hiramatsu (Google) 2 months, 1 week ago
On Tue, 29 Jul 2025 12:18:17 -0400
Steven Rostedt <rostedt@kernel.org> wrote:

> From: Steven Rostedt <rostedt@goodmis.org>
> 
> Eprobes were added in 5.15 and were selected whenever any of the other
> probe events were selected. If kprobe events were enabled (which it is by
> default if kprobes are enabled) it would enable eprobe events as well. The
> same for uprobes and fprobes.
> 
> Have eprobes have its own config and it gets enabled by default if tracing
> is enabled.
> 
> Link: https://lore.kernel.org/all/20250729102636.b7cce553e7cc263722b12365@kernel.org/
> 

Looks good to me.

Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

BTW, is it a bugfix or improvement?

Thanks,

> Suggested-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> ---
>  kernel/trace/Kconfig  | 13 +++++++++++++
>  kernel/trace/Makefile |  2 +-
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> index 93e8e7fc11c0..b951c027fffb 100644
> --- a/kernel/trace/Kconfig
> +++ b/kernel/trace/Kconfig
> @@ -792,6 +792,19 @@ config UPROBE_EVENTS
>  	  This option is required if you plan to use perf-probe subcommand
>  	  of perf tools on user space applications.
>  
> +config EPROBE_EVENTS
> +	bool "Enable event-based dynamic events"
> +	depends on TRACING
> +	select PROBE_EVENTS
> +	select DYNAMIC_EVENTS
> +	default y
> +	help
> +	  Eprobes are dynamic events that can be placed on other existing
> +	  events. It can be used to limit what fields are recorded in
> +	  an event or even dereference a field of an event. It can
> +	  convert the type of an event field. For example, turn an
> +	  address into a string.
> +
>  config BPF_EVENTS
>  	depends on BPF_SYSCALL
>  	depends on (KPROBE_EVENTS || UPROBE_EVENTS) && PERF_EVENTS
> diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> index 057cd975d014..dcb4e02afc5f 100644
> --- a/kernel/trace/Makefile
> +++ b/kernel/trace/Makefile
> @@ -82,7 +82,7 @@ obj-$(CONFIG_EVENT_TRACING) += trace_event_perf.o
>  endif
>  obj-$(CONFIG_EVENT_TRACING) += trace_events_filter.o
>  obj-$(CONFIG_EVENT_TRACING) += trace_events_trigger.o
> -obj-$(CONFIG_PROBE_EVENTS) += trace_eprobe.o
> +obj-$(CONFIG_EPROBE_EVENTS) += trace_eprobe.o
>  obj-$(CONFIG_TRACE_EVENT_INJECT) += trace_events_inject.o
>  obj-$(CONFIG_SYNTH_EVENTS) += trace_events_synth.o
>  obj-$(CONFIG_HIST_TRIGGERS) += trace_events_hist.o
> -- 
> 2.47.2
> 
> 


-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>