take kprobe event as example, when create a group of events,
p[:[GRP/]EVENT] [MOD:]KSYM[+OFFS]|KADDR [FETCHARGS],
according to this format, we must input EVENT name,
this change allow only GRP/ input, EVENT name auto generate from KSYM,
p[:[GRP/][EVENT]] [MOD:]KSYM[+OFFS]|KADDR [FETCHARGS]
siliar change apply to eprobe and uprobe.
V1: https://lore.kernel.org/lkml/[email protected]/T/#m33b0665941d9caeeb118afa84db4016321cea9a6
V2: fix remove comment in V1 patch1,
remove v1 patch2 as it is NACK.
v3: (v2 link: https://lore.kernel.org/lkml/[email protected]/)
add selftest cases for kprobe and eprobe event,
remove macro used in v1,v2,
change location to generate eprobe event name.
Linyu Yuan (3):
tracing: eprobe: remove duplicate is_good_name() operation
tracing: auto generate event name when create a group of events
selftests/ftrace: add test case for GRP/ only input
Documentation/trace/kprobetrace.rst | 8 +++----
Documentation/trace/uprobetracer.rst | 8 +++----
kernel/trace/trace.c | 8 +++----
kernel/trace/trace_dynevent.c | 2 +-
kernel/trace/trace_eprobe.c | 25 +++++++++++-----------
kernel/trace/trace_kprobe.c | 16 ++++++++------
kernel/trace/trace_probe.c | 6 ++++++
kernel/trace/trace_uprobe.c | 12 +++++++----
.../ftrace/test.d/dynevent/add_remove_eprobe.tc | 7 +++++-
.../ftrace/test.d/dynevent/add_remove_kprobe.tc | 7 +++++-
10 files changed, 61 insertions(+), 38 deletions(-)
--
2.7.4
traceprobe_parse_event_name() already validate group and event name,
there is no need to call is_good_name() after it.
Signed-off-by: Linyu Yuan <[email protected]>
---
v2: drop v1 change as it is NACK.
add it to remove duplicate is_good_name().
v3: move it as first patch.
kernel/trace/trace_eprobe.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
index 7d44785..17d64e3 100644
--- a/kernel/trace/trace_eprobe.c
+++ b/kernel/trace/trace_eprobe.c
@@ -878,16 +878,12 @@ static int __trace_eprobe_create(int argc, const char *argv[])
sanitize_event_name(buf1);
event = buf1;
}
- if (!is_good_name(event) || !is_good_name(group))
- goto parse_error;
sys_event = argv[1];
ret = traceprobe_parse_event_name(&sys_event, &sys_name, buf2,
sys_event - argv[1]);
if (ret || !sys_name)
goto parse_error;
- if (!is_good_name(sys_event) || !is_good_name(sys_name))
- goto parse_error;
mutex_lock(&event_mutex);
event_call = find_and_get_event(sys_name, sys_event);
--
2.7.4