From 5ce669a59503f7c05c4648c70fe72bbe42613743 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Fri, 4 Aug 2017 14:18:29 -0300 Subject: perf test shell: Move vfs_getname probe function to lib Multiple tests will be able to reuse these functions, to test things like perf report, 'trace', etc, using this probe. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Michael Petlan Cc: Namhyung Kim Cc: Thomas Richter Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-48xagvozhouhyi8fjota6o2d@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/Makefile.perf | 4 +++- tools/perf/tests/shell/lib/probe_vfs_getname.sh | 28 +++++++++++++++++++++++++ tools/perf/tests/shell/probe_vfs_getname.sh | 22 +------------------ 3 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 tools/perf/tests/shell/lib/probe_vfs_getname.sh diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index eb13567..70ddc65 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -762,7 +762,9 @@ install-tests: all install-gtk $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \ $(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \ - $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell' + $(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \ + $(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib' install-bin: install-tools install-tests install-traceevent-plugins diff --git a/tools/perf/tests/shell/lib/probe_vfs_getname.sh b/tools/perf/tests/shell/lib/probe_vfs_getname.sh new file mode 100644 index 0000000..4230804 --- /dev/null +++ b/tools/perf/tests/shell/lib/probe_vfs_getname.sh @@ -0,0 +1,28 @@ +# Arnaldo Carvalho de Melo , 2017 + +perf probe -l | grep -q probe:vfs_getname +had_vfs_getname=$? + +cleanup_probe_vfs_getname() { + if [ $had_vfs_getname -eq 1 ] ; then + perf probe -q -d probe:vfs_getname + fi +} + +add_probe_vfs_getname() { + local verbose=$1 + if [ $had_vfs_getname -eq 1 ] ; then + line=$(perf probe -L getname_flags | egrep 'result.*=.*filename;' | sed -r 's/[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*/\1/') + perf probe $verbose "vfs_getname=getname_flags:${line} pathname=result->name:string" + fi +} + +skip_if_no_debuginfo() { + add_probe_vfs_getname -v 2>&1 | grep -q "^Failed to find the path for kernel" && return 2 + return 1 +} + +skip_if_no_debuginfo() { + add_probe_vfs_getname -v 2>&1 | grep -q "^Failed to find the path for kernel" && return 2 + return 1 +} diff --git a/tools/perf/tests/shell/probe_vfs_getname.sh b/tools/perf/tests/shell/probe_vfs_getname.sh index d5f5248..c8380137 100755 --- a/tools/perf/tests/shell/probe_vfs_getname.sh +++ b/tools/perf/tests/shell/probe_vfs_getname.sh @@ -2,27 +2,7 @@ # # Arnaldo Carvalho de Melo , 2017 -perf probe -l | grep -q probe:vfs_getname -had_vfs_getname=$? - -cleanup_probe_vfs_getname() { - if [ $had_vfs_getname -eq 1 ] ; then - perf probe -q -d probe:vfs_getname - fi -} - -add_probe_vfs_getname() { - local verbose=$1 - if [ $had_vfs_getname -eq 1 ] ; then - line=$(perf probe -L getname_flags | egrep 'result.*=.*filename;' | sed -r 's/[[:space:]]+([[:digit:]]+)[[:space:]]+result->uptr.*/\1/') - perf probe $verbose "vfs_getname=getname_flags:${line} pathname=result->name:string" - fi -} - -skip_if_no_debuginfo() { - add_probe_vfs_getname -v 2>&1 | grep -q "^Failed to find the path for kernel" && return 2 - return 1 -} +. $(dirname $0)/lib/probe_vfs_getname.sh add_probe_vfs_getname || skip_if_no_debuginfo err=$? -- cgit v1.1