* [PATCH v2] perf test probe_vfs_getname: Add regex for searching probe line
@ 2025-05-19 8:27 Leo Yan
2025-05-19 21:29 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 2+ messages in thread
From: Leo Yan @ 2025-05-19 8:27 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Namhyung Kim, Jiri Olsa, Ian Rogers,
Adrian Hunter, Liang, Kan, Jakub Brnak, linux-perf-users,
linux-kernel
Cc: Leo Yan
Since commit 611851010c74 ("fs: dedup handling of struct filename init
and refcounts bumps"), the kernel has been refactored to use a new
inline function initname(), moving name initialization into it.
As a result, the perf probe test can no longer find the source line that
matches the defined regular expressions. This causes the script to fail
when attempting to add probes.
Add a regular expression to search for the call site of initname(). This
provides a valid source line number for adding the probe. Keeps the
older regular expressions for passing test on older kernels.
Suggested-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Fixes: 611851010c74 ("fs: dedup handling of struct filename init and refcounts bumps")
Signed-off-by: Leo Yan <leo.yan@arm.com>
---
Changes from v1:
- Keep old regexps to be compatible with older kernels (Arnaldo)
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/tools/perf/tests/shell/lib/probe_vfs_getname.sh b/tools/perf/tests/shell/lib/probe_vfs_getname.sh
index 89f72a4c818c..58debce9ab42 100644
--- a/tools/perf/tests/shell/lib/probe_vfs_getname.sh
+++ b/tools/perf/tests/shell/lib/probe_vfs_getname.sh
@@ -13,8 +13,16 @@ cleanup_probe_vfs_getname() {
add_probe_vfs_getname() {
add_probe_verbose=$1
if [ $had_vfs_getname -eq 1 ] ; then
- result_filename_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*"
- line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_filename_re" | sed -r "s/$result_filename_re/\1/")
+ result_initname_re="[[:space:]]+([[:digit:]]+)[[:space:]]+initname.*"
+ line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_initname_re" | sed -r "s/$result_initname_re/\1/")
+
+ # Search the old regular expressions so that this will
+ # pass on older kernels as well.
+ if [ -z "$line" ] ; then
+ result_filename_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*"
+ line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_filename_re" | sed -r "s/$result_filename_re/\1/")
+ fi
+
if [ -z "$line" ] ; then
result_aname_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->aname = NULL;"
line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_aname_re" | sed -r "s/$result_aname_re/\1/")
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] perf test probe_vfs_getname: Add regex for searching probe line
2025-05-19 8:27 [PATCH v2] perf test probe_vfs_getname: Add regex for searching probe line Leo Yan
@ 2025-05-19 21:29 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2025-05-19 21:29 UTC (permalink / raw)
To: Leo Yan
Cc: Namhyung Kim, Jiri Olsa, Ian Rogers, Adrian Hunter, Liang, Kan,
Jakub Brnak, linux-perf-users, linux-kernel
On Mon, May 19, 2025 at 09:27:55AM +0100, Leo Yan wrote:
> Since commit 611851010c74 ("fs: dedup handling of struct filename init
> and refcounts bumps"), the kernel has been refactored to use a new
> inline function initname(), moving name initialization into it.
>
> As a result, the perf probe test can no longer find the source line that
> matches the defined regular expressions. This causes the script to fail
> when attempting to add probes.
>
> Add a regular expression to search for the call site of initname(). This
> provides a valid source line number for adding the probe. Keeps the
> older regular expressions for passing test on older kernels.
Thanks, tested and applied.
- Arnaldo
>
> Suggested-by: Arnaldo Carvalho de Melo <acme@kernel.org>
> Fixes: 611851010c74 ("fs: dedup handling of struct filename init and refcounts bumps")
> Signed-off-by: Leo Yan <leo.yan@arm.com>
> ---
>
> Changes from v1:
> - Keep old regexps to be compatible with older kernels (Arnaldo)
>
> tools/perf/tests/shell/lib/probe_vfs_getname.sh | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/tests/shell/lib/probe_vfs_getname.sh b/tools/perf/tests/shell/lib/probe_vfs_getname.sh
> index 89f72a4c818c..58debce9ab42 100644
> --- a/tools/perf/tests/shell/lib/probe_vfs_getname.sh
> +++ b/tools/perf/tests/shell/lib/probe_vfs_getname.sh
> @@ -13,8 +13,16 @@ cleanup_probe_vfs_getname() {
> add_probe_vfs_getname() {
> add_probe_verbose=$1
> if [ $had_vfs_getname -eq 1 ] ; then
> - result_filename_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*"
> - line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_filename_re" | sed -r "s/$result_filename_re/\1/")
> + result_initname_re="[[:space:]]+([[:digit:]]+)[[:space:]]+initname.*"
> + line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_initname_re" | sed -r "s/$result_initname_re/\1/")
> +
> + # Search the old regular expressions so that this will
> + # pass on older kernels as well.
> + if [ -z "$line" ] ; then
> + result_filename_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*"
> + line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_filename_re" | sed -r "s/$result_filename_re/\1/")
> + fi
> +
> if [ -z "$line" ] ; then
> result_aname_re="[[:space:]]+([[:digit:]]+)[[:space:]]+result->aname = NULL;"
> line=$(perf probe -L getname_flags 2>&1 | grep -E "$result_aname_re" | sed -r "s/$result_aname_re/\1/")
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-05-19 21:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-19 8:27 [PATCH v2] perf test probe_vfs_getname: Add regex for searching probe line Leo Yan
2025-05-19 21:29 ` Arnaldo Carvalho de Melo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.