Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ce669a5 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

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 <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Thomas Richter <tmricht@linux.vnet.ibm.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-48xagvozhouhyi8fjota6o2d@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 122e0b94
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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

+28 −0
Original line number Diff line number Diff line
# Arnaldo Carvalho de Melo <acme@kernel.org>, 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
}
+1 −21
Original line number Diff line number Diff line
@@ -2,27 +2,7 @@
#
# Arnaldo Carvalho de Melo <acme@kernel.org>, 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=$?