2022-06-27 02:31:41

by Linyu Yuan

[permalink] [raw]
Subject: [PATCH v7 0/4] tracing/probes: allow no event name input when create group

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]

similar change apply to eprobe and uprobe.

V2: (v1: https://lore.kernel.org/lkml/[email protected]/)
fix remove comment in V1 patch1,
remove v1 patch2 as it is NACK.

v3: (v2 : 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.

v4: (v3 : https://lore.kernel.org/lkml/[email protected]/)
fix comment of kprobe/eprobe test case.

v5: (v4: https://lore.kernel.org/lkml/[email protected]/)
for eprobe, when only input a "SYSTEM.", it is invalid.
add Acked-by from Masami Hiramatsu (Google) <[email protected]>

v6: (v5: https://lore.kernel.org/lkml/[email protected]/)
change some code order according review comment from Tom Zanussi,
some minor changes.

v7: (v6: https://lore.kernel.org/lkml/[email protected]/)
move log index to a separate patch according review comment

Linyu Yuan (4):
tracing: eprobe: add missing log index
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 | 28 +++++++++++-----------
kernel/trace/trace_kprobe.c | 16 ++++++++-----
kernel/trace/trace_probe.c | 4 ++++
kernel/trace/trace_uprobe.c | 12 ++++++----
.../ftrace/test.d/dynevent/add_remove_eprobe.tc | 9 ++++++-
.../ftrace/test.d/dynevent/add_remove_kprobe.tc | 7 ++++++
10 files changed, 64 insertions(+), 38 deletions(-)

--
2.7.4


2022-07-05 21:53:46

by Tom Zanussi

[permalink] [raw]
Subject: Re: [PATCH v7 0/4] tracing/probes: allow no event name input when create group

Hi Yuan,

On Mon, 2022-06-27 at 10:19 +0800, Linyu Yuan wrote:
> 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]
>
> similar change apply to eprobe and uprobe.

Thanks for making those changes!

For the series,

Reviewed-by: Tom Zanussi <[email protected]>

Tom

>
> V2: (v1:
> https://lore.kernel.org/lkml/[email protected]/
> )
>     fix remove comment in V1 patch1,
>     remove v1 patch2 as it is NACK.
>
> v3: (v2 :
> 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.
>
> v4: (v3 :
> https://lore.kernel.org/lkml/[email protected]/
> )
>     fix comment of kprobe/eprobe test case.
>
> v5: (v4:
> https://lore.kernel.org/lkml/[email protected]/
> )
>     for eprobe, when only input a "SYSTEM.", it is invalid.
>     add Acked-by from Masami Hiramatsu (Google) <[email protected]>
>
> v6: (v5:
> https://lore.kernel.org/lkml/[email protected]/
> )
>     change some code order according review comment from Tom Zanussi,
>     some minor changes.
>
> v7: (v6:
> https://lore.kernel.org/lkml/[email protected]/
> )
>     move log index to a separate patch according review comment
>
> Linyu Yuan (4):
>   tracing: eprobe: add missing log index
>   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                        | 28 +++++++++++-
> ----------
>  kernel/trace/trace_kprobe.c                        | 16 ++++++++----
> -
>  kernel/trace/trace_probe.c                         |  4 ++++
>  kernel/trace/trace_uprobe.c                        | 12 ++++++----
>  .../ftrace/test.d/dynevent/add_remove_eprobe.tc    |  9 ++++++-
>  .../ftrace/test.d/dynevent/add_remove_kprobe.tc    |  7 ++++++
>  10 files changed, 64 insertions(+), 38 deletions(-)
>

2022-07-12 20:55:53

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH v7 0/4] tracing/probes: allow no event name input when create group

On Mon, 27 Jun 2022 10:19:04 +0800
Linyu Yuan <[email protected]> wrote:

> 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]
>
> similar change apply to eprobe and uprobe.
>


With this patch set applied, this selftest fails:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc

This exactly:

echo 'p:foo/ vfs_read' > kprobe_events

no longer fails as the test expects it to.

I guess we need to remove that check as it now works and no longer fails as
"expected".

This change fixes it.

If it's OK with everyone, I'll apply this change.

-- Steve

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc
index fa928b431555..7c02509c71d0 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc
@@ -21,7 +21,6 @@ check_error 'p:^/bar vfs_read' # NO_GROUP_NAME
check_error 'p:^12345678901234567890123456789012345678901234567890123456789012345/bar vfs_read' # GROUP_TOO_LONG

check_error 'p:^foo.1/bar vfs_read' # BAD_GROUP_NAME
-check_error 'p:foo/^ vfs_read' # NO_EVENT_NAME
check_error 'p:foo/^12345678901234567890123456789012345678901234567890123456789012345 vfs_read' # EVENT_TOO_LONG
check_error 'p:foo/^bar.1 vfs_read' # BAD_EVENT_NAME