diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2019-01-04 15:10:00 -0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-02-20 10:20:48 +0100 |
commit | e5d94a1a1f462fd78964a6de22bb5d34f6d6c1c5 (patch) | |
tree | f36e080131346fd68bdcbf0dbd9588a8e543ec36 /tools | |
parent | bf56a48cb3f93f79882b250163878a231fc72fc1 (diff) | |
download | linux-stable-e5d94a1a1f462fd78964a6de22bb5d34f6d6c1c5.tar.gz linux-stable-e5d94a1a1f462fd78964a6de22bb5d34f6d6c1c5.tar.bz2 linux-stable-e5d94a1a1f462fd78964a6de22bb5d34f6d6c1c5.zip |
perf test shell: Use a fallback to get the pathname in vfs_getname
[ Upstream commit 03fa483821c0b4db7c2b1453d3332f397d82313f ]
Some kernels, like 4.19.13-300.fc29.x86_64 in fedora 29, fail with the
existing probe definition asking for the contents of result->name,
working when we ask for the 'filename' variable instead, so add a
fallback to that.
Now those tests are back working on fedora 29 systems with that kernel:
# perf test vfs_getname
65: Use vfs_getname probe to get syscall args filenames : Ok
66: Add vfs_getname probe to get syscall args filenames : Ok
67: Check open filename arg using perf trace + vfs_getname: Ok
#
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-klt3n0i58dfqttveti09q3fi@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/tests/shell/lib/probe_vfs_getname.sh | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/perf/tests/shell/lib/probe_vfs_getname.sh b/tools/perf/tests/shell/lib/probe_vfs_getname.sh index 30a950c9d407..068d463e5cbf 100644 --- a/tools/perf/tests/shell/lib/probe_vfs_getname.sh +++ b/tools/perf/tests/shell/lib/probe_vfs_getname.sh @@ -13,7 +13,8 @@ add_probe_vfs_getname() { local verbose=$1 if [ $had_vfs_getname -eq 1 ] ; then line=$(perf probe -L getname_flags 2>&1 | egrep 'result.*=.*filename;' | sed -r 's/[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*/\1/') - perf probe $verbose "vfs_getname=getname_flags:${line} pathname=result->name:string" + perf probe -q "vfs_getname=getname_flags:${line} pathname=result->name:string" || \ + perf probe $verbose "vfs_getname=getname_flags:${line} pathname=filename:string" fi } |