mirror of
https://github.com/torvalds/linux.git
synced 2026-08-16 12:30:06 +02:00
Sometimes when adding a kprobe by perf, it results in multiple probe
points, such as the following:
# ./perf probe -l
probe:vfs_getname (on getname_flags:73@fs/namei.c with pathname)
probe:vfs_getname_1 (on getname_flags:73@fs/namei.c with pathname)
probe:vfs_getname_2 (on getname_flags:73@fs/namei.c with pathname)
# cat /sys/kernel/debug/tracing/kprobe_events
p:probe/vfs_getname _text+5501804 pathname=+0(+0(%gpr31)):string
p:probe/vfs_getname_1 _text+5505388 pathname=+0(+0(%gpr31)):string
p:probe/vfs_getname_2 _text+5508396 pathname=+0(+0(%gpr31)):string
In this test, we need to record all of them and expect any of them in
the perf-script output, since it's not clear which one will be used for
the desired syscall:
# perf stat -e probe:vfs_getname\* -- touch /tmp/nic
Performance counter stats for 'touch /tmp/nic':
31 probe:vfs_getname_2
0 probe:vfs_getname_1
1 probe:vfs_getname
0.001421826 seconds time elapsed
0.001506000 seconds user
0.000000000 seconds sys
If the test relies only on probe:vfs_getname, it might easily miss the
relevant data.
Signed-off-by: Michael Petlan <mpetlan@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
LPU-Reference: 20200722135845.29958-1-mpetlan@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
||
|---|---|---|
| .. | ||
| attr | ||
| shell | ||
| .gitignore | ||
| api-io.c | ||
| attr.c | ||
| attr.py | ||
| backward-ring-buffer.c | ||
| bitmap.c | ||
| bp_account.c | ||
| bp_signal_overflow.c | ||
| bp_signal.c | ||
| bpf-script-example.c | ||
| bpf-script-test-kbuild.c | ||
| bpf-script-test-prologue.c | ||
| bpf-script-test-relocation.c | ||
| bpf.c | ||
| Build | ||
| builtin-test.c | ||
| clang.c | ||
| code-reading.c | ||
| cpumap.c | ||
| demangle-java-test.c | ||
| dso-data.c | ||
| dwarf-unwind.c | ||
| event_update.c | ||
| event-times.c | ||
| evsel-roundtrip-name.c | ||
| evsel-tp-sched.c | ||
| expr.c | ||
| fdarray.c | ||
| genelf.c | ||
| hists_common.c | ||
| hists_common.h | ||
| hists_cumulate.c | ||
| hists_filter.c | ||
| hists_link.c | ||
| hists_output.c | ||
| is_printable_array.c | ||
| keep-tracking.c | ||
| kmod-path.c | ||
| llvm.c | ||
| llvm.h | ||
| make | ||
| maps.c | ||
| mem.c | ||
| mem2node.c | ||
| mmap-basic.c | ||
| mmap-thread-lookup.c | ||
| openat-syscall-all-cpus.c | ||
| openat-syscall-tp-fields.c | ||
| openat-syscall.c | ||
| parse-events.c | ||
| parse-metric.c | ||
| parse-no-sample-id-all.c | ||
| perf-hooks.c | ||
| perf-record.c | ||
| perf-targz-src-pkg | ||
| pfm.c | ||
| pmu-events.c | ||
| pmu.c | ||
| python-use.c | ||
| sample-parsing.c | ||
| sdt.c | ||
| stat.c | ||
| sw-clock.c | ||
| switch-tracking.c | ||
| task-exit.c | ||
| tests.h | ||
| thread-map.c | ||
| thread-maps-share.c | ||
| time-utils-test.c | ||
| topology.c | ||
| unit_number__scnprintf.c | ||
| vmlinux-kallsyms.c | ||
| wp.c | ||