Skip to content

Commit 4d86b89

Browse files
author
Jakub Brnak
committed
perf test probe_vfs_getname: Skip if no suitable line detected
JIRA: https://issues.redhat.com/browse/RHEL-74228 upstream ======== commit 92b664d Author: Jakub Brnak <jbrnak@redhat.com> Date: Mon Mar 24 15:45:23 2025 +0100 description =========== In some cases when calling function add_probe_vfs_getname, line number can't be detected by 'perf probe -L getname_flags': 78 atomic_set(&result->refcnt, 1); // one of the following lines should have line number // but sometimes it does not because of optimization result->uptr = filename; result->aname = NULL; 81 audit_getname(result); To prevent false failures, skip the affected tests if no suitable line numbers can be detected. Signed-off-by: Jakub Brnak <jbrnak@redhat.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Tomas Glozar <tglozar@redhat.com> Link: https://lore.kernel.org/r/20250324144523.597557-1-jbrnak@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Jakub Brnak <jbrnak@redhat.com>
1 parent 09176fc commit 4d86b89

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

tools/perf/tests/shell/lib/probe_vfs_getname.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,14 @@ add_probe_vfs_getname() {
1919
result_aname_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->aname = NULL;"
2020
line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_aname_re" | sed -r "s/$result_aname_re/\1/")
2121
fi
22+
23+
if [ -z "$line" ] ; then
24+
echo "Could not find probeable line"
25+
return 2
26+
fi
27+
2228
perf probe -q "vfs_getname=getname_flags:${line} pathname=result->name:string" || \
23-
perf probe $add_probe_verbose "vfs_getname=getname_flags:${line} pathname=filename:ustring"
29+
perf probe $add_probe_verbose "vfs_getname=getname_flags:${line} pathname=filename:ustring" || return 1
2430
fi
2531
}
2632

tools/perf/tests/shell/probe_vfs_getname.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ skip_if_no_perf_probe || exit 2
1212
# shellcheck source=lib/probe_vfs_getname.sh
1313
. "$(dirname $0)"/lib/probe_vfs_getname.sh
1414

15-
add_probe_vfs_getname || skip_if_no_debuginfo
15+
add_probe_vfs_getname
1616
err=$?
17+
18+
if [ $err -eq 1 ] ; then
19+
skip_if_no_debuginfo
20+
err=$?
21+
fi
22+
1723
cleanup_probe_vfs_getname
1824
exit $err

tools/perf/tests/shell/record+script_probe_vfs_getname.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,14 @@ perf_script_filenames() {
3434
grep -E " +touch +[0-9]+ +\[[0-9]+\] +[0-9]+\.[0-9]+: +probe:vfs_getname[_0-9]*: +\([[:xdigit:]]+\) +pathname=\"${file}\""
3535
}
3636

37-
add_probe_vfs_getname || skip_if_no_debuginfo
37+
add_probe_vfs_getname
3838
err=$?
39+
40+
if [ $err -eq 1 ] ; then
41+
skip_if_no_debuginfo
42+
err=$?
43+
fi
44+
3945
if [ $err -ne 0 ] ; then
4046
exit $err
4147
fi

tools/perf/tests/shell/trace+probe_vfs_getname.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,14 @@ trace_open_vfs_getname() {
2424
grep -E " +[0-9]+\.[0-9]+ +\( +[0-9]+\.[0-9]+ ms\): +touch/[0-9]+ open(at)?\((dfd: +CWD, +)?filename: +\"?${file}\"?, +flags: CREAT\|NOCTTY\|NONBLOCK\|WRONLY, +mode: +IRUGO\|IWUGO\) += +[0-9]+$"
2525
}
2626

27-
28-
add_probe_vfs_getname || skip_if_no_debuginfo
27+
add_probe_vfs_getname
2928
err=$?
29+
30+
if [ $err -eq 1 ] ; then
31+
skip_if_no_debuginfo
32+
err=$?
33+
fi
34+
3035
if [ $err -ne 0 ] ; then
3136
exit $err
3237
fi

0 commit comments

Comments
 (0)