forked from luck/tmp_suning_uos_patched
perf test shell: Add test using vfs_getname + 'perf trace'
Uses the 'perf test shell' library to add probe:vfs_getname to the system then use it with 'perf trace' using 'touch' to write to a temp file, then checks that that was captured by the vfs_getname was used by 'perf trace', that already handles "probe:vfs_getname" if present, and used in the "open" syscall "filename" argument beautifier. Testing it: # perf test "trace + vfs_getname" 61: Check open filename arg using perf trace + vfs_getname: Ok # # perf test -v "trace + vfs_getname" 61: Check open filename arg using perf trace + vfs_getname: --- start --- test child forked, pid 30846 Added new event: probe:vfs_getname (on getname_flags:72 with pathname=result->name:string) You can now use it in all perf tools, such as: perf record -e probe:vfs_getname -aR sleep 1 2.237 ( 0.012 ms): touch/30855 open(filename: /tmp/temporary_file.kmoWQ, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 3 test child finished with 0 ---- end ---- Check open filename arg using perf trace + vfs_getname: Ok # 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-j02nobfvvn9c7yrphdsnbqx0@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
6060c7264d
commit
e498f336d6
31
tools/perf/tests/shell/trace+probe_vfs_getname.sh
Executable file
31
tools/perf/tests/shell/trace+probe_vfs_getname.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
# Check open filename arg using perf trace + vfs_getname
|
||||
|
||||
# Uses the 'perf test shell' library to add probe:vfs_getname to the system
|
||||
# then use it with 'perf trace' using 'touch' to write to a temp file, then
|
||||
# checks that that was captured by the vfs_getname was used by 'perf trace',
|
||||
# that already handles "probe:vfs_getname" if present, and used in the
|
||||
# "open" syscall "filename" argument beautifier.
|
||||
|
||||
# Arnaldo Carvalho de Melo <acme@kernel.org>, 2017
|
||||
|
||||
. $(dirname $0)/lib/probe_vfs_getname.sh
|
||||
|
||||
file=$(mktemp /tmp/temporary_file.XXXXX)
|
||||
|
||||
trace_open_vfs_getname() {
|
||||
perf trace -e open touch $file 2>&1 | \
|
||||
egrep " +[0-9]+\.[0-9]+ +\( +[0-9]+\.[0-9]+ ms\): +touch\/[0-9]+ open\(filename: +${file}, +flags: CREAT\|NOCTTY\|NONBLOCK\|WRONLY, +mode: +IRUGO\|IWUGO\) += +[0-9]+$"
|
||||
}
|
||||
|
||||
|
||||
add_probe_vfs_getname || skip_if_no_debuginfo
|
||||
err=$?
|
||||
if [ $err -ne 0 ] ; then
|
||||
exit $err
|
||||
fi
|
||||
|
||||
trace_open_vfs_getname
|
||||
err=$?
|
||||
rm -f ${file}
|
||||
cleanup_probe_vfs_getname
|
||||
exit $err
|
Loading…
Reference in New Issue
Block a user