Re: [PATCH] perf test probe_vfs_getname: Correct probe line for updated kernel code
From: Leo Yan
Date: Mon May 19 2025 - 04:46:02 EST
On Fri, May 16, 2025 at 03:49:51PM -0300, Arnaldo Carvalho de Melo wrote:
> On Fri, May 16, 2025 at 10:05:32AM +0100, Leo Yan wrote:
[...]
> Well, I'd say we should add, not update, i.e. a new perf should continue
> to work on an older kernel, so please consider the following patch.
The change is fine with me. I sent patch v2 based on the idea.
Thanks a lot for suggestion!
Leo
> - Arnaldo
>
> diff --git a/tools/perf/tests/shell/lib/probe_vfs_getname.sh b/tools/perf/tests/shell/lib/probe_vfs_getname.sh
> index 89f72a4c818c712b..aa867e28eadc46bc 100644
> --- a/tools/perf/tests/shell/lib/probe_vfs_getname.sh
> +++ b/tools/perf/tests/shell/lib/probe_vfs_getname.sh
> @@ -13,8 +13,17 @@ 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/")
> + # Please keep the older regexps so that this will pass on older kernels as well
> + # as in the most recent one.
> +
> + 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/")
> +
> + 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/")