Re: [PATCH v2 1/4] perf test shell: Replace '|&' with '2>&1 |' to work with more shells
On 06/29/2018 07:46 PM, Kim Phillips wrote: > Since we do not specify bash (and/or zsh) as a requirement, use the > standard error redirection that is more widely supported. > > BEFORE: > > $ sudo ./perf test -v 62 > 62: Check open filename arg using perf trace + vfs_getname: > --- start --- > test child forked, pid 27305 > ./tests/shell/trace+probe_vfs_getname.sh: 20: > ./tests/shell/trace+probe_vfs_getname.sh: Syntax error: "&" unexpected > test child finished with -2 > end > Check open filename arg using perf trace + vfs_getname: Skip > > AFTER: > > $ sudo ./perf test -v 62 > 64: Check open filename arg using perf trace + vfs_getname : > --- start --- > test child forked, pid 23008 > 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 > > 0.361 ( 0.008 ms): touch/23032 openat(dfd: CWD, filename: > /tmp/temporary_file.VEh0n, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: > IRUGO|IWUGO) = 4 > test child finished with 0 > end > Check open filename arg using perf trace + vfs_getname: Ok > > Similar to commit 35435cd06081, with the same title. > > Cc: Arnaldo Carvalho de Melo > Cc: Peter Zijlstra > Cc: Ingo Molnar > Cc: Alexander Shishkin > Cc: Jiri Olsa > Cc: Namhyung Kim > Cc: Thomas Richter > Cc: Michael Petlan > Signed-off-by: Kim Phillips > --- > v2: indent terminal session logs with a space to avoid git-am parsing > '--- start ---' as the end of the description text. > > tools/perf/tests/shell/trace+probe_vfs_getname.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/tests/shell/trace+probe_vfs_getname.sh > b/tools/perf/tests/shell/trace+probe_vfs_getname.sh > index 55ad9793d544..4ce276efe6b4 100755 > --- a/tools/perf/tests/shell/trace+probe_vfs_getname.sh > +++ b/tools/perf/tests/shell/trace+probe_vfs_getname.sh > @@ -17,7 +17,7 @@ skip_if_no_perf_probe || exit 2 > file=$(mktemp /tmp/temporary_file.X) > > trace_open_vfs_getname() { > - evts=$(echo $(perf list syscalls:sys_enter_open* |& egrep 'open(at)? ' > | sed -r 's/.*sys_enter_([a-z]+) +\[.*$/\1/') | sed 's/ /,/') > + evts=$(echo $(perf list syscalls:sys_enter_open* 2>&1 | egrep > 'open(at)? ' | sed -r 's/.*sys_enter_([a-z]+) +\[.*$/\1/') | sed 's/ /,/') > perf trace -e $evts touch $file 2>&1 | \ > egrep " +[0-9]+\.[0-9]+ +\( +[0-9]+\.[0-9]+ ms\): +touch\/[0-9]+ > open(at)?\((dfd: +CWD, +)?filename: +${file}, +flags: > CREAT\|NOCTTY\|NONBLOCK\|WRONLY, +mode: +IRUGO\|IWUGO\) += +[0-9]+$" > } > Applied and tested for s390. You have my tested by. -- Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany -- Vorsitzende des Aufsichtsrats: Martina Koederitz Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
Re: [PATCH v2 1/4] perf test shell: Replace '|&' with '2>&1 |' to work with more shells
Em Fri, Jun 29, 2018 at 12:46:33PM -0500, Kim Phillips escreveu: > Since we do not specify bash (and/or zsh) as a requirement, use the > standard error redirection that is more widely supported. Thanks, applied the 4 patches, - Arnaldo
[PATCH v2 1/4] perf test shell: Replace '|&' with '2>&1 |' to work with more shells
Since we do not specify bash (and/or zsh) as a requirement, use the standard error redirection that is more widely supported. BEFORE: $ sudo ./perf test -v 62 62: Check open filename arg using perf trace + vfs_getname: --- start --- test child forked, pid 27305 ./tests/shell/trace+probe_vfs_getname.sh: 20: ./tests/shell/trace+probe_vfs_getname.sh: Syntax error: "&" unexpected test child finished with -2 end Check open filename arg using perf trace + vfs_getname: Skip AFTER: $ sudo ./perf test -v 62 64: Check open filename arg using perf trace + vfs_getname : --- start --- test child forked, pid 23008 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 0.361 ( 0.008 ms): touch/23032 openat(dfd: CWD, filename: /tmp/temporary_file.VEh0n, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: IRUGO|IWUGO) = 4 test child finished with 0 end Check open filename arg using perf trace + vfs_getname: Ok Similar to commit 35435cd06081, with the same title. Cc: Arnaldo Carvalho de Melo Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Thomas Richter Cc: Michael Petlan Signed-off-by: Kim Phillips --- v2: indent terminal session logs with a space to avoid git-am parsing '--- start ---' as the end of the description text. tools/perf/tests/shell/trace+probe_vfs_getname.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/tests/shell/trace+probe_vfs_getname.sh b/tools/perf/tests/shell/trace+probe_vfs_getname.sh index 55ad9793d544..4ce276efe6b4 100755 --- a/tools/perf/tests/shell/trace+probe_vfs_getname.sh +++ b/tools/perf/tests/shell/trace+probe_vfs_getname.sh @@ -17,7 +17,7 @@ skip_if_no_perf_probe || exit 2 file=$(mktemp /tmp/temporary_file.X) trace_open_vfs_getname() { - evts=$(echo $(perf list syscalls:sys_enter_open* |& egrep 'open(at)? ' | sed -r 's/.*sys_enter_([a-z]+) +\[.*$/\1/') | sed 's/ /,/') + evts=$(echo $(perf list syscalls:sys_enter_open* 2>&1 | egrep 'open(at)? ' | sed -r 's/.*sys_enter_([a-z]+) +\[.*$/\1/') | sed 's/ /,/') perf trace -e $evts touch $file 2>&1 | \ egrep " +[0-9]+\.[0-9]+ +\( +[0-9]+\.[0-9]+ ms\): +touch\/[0-9]+ open(at)?\((dfd: +CWD, +)?filename: +${file}, +flags: CREAT\|NOCTTY\|NONBLOCK\|WRONLY, +mode: +IRUGO\|IWUGO\) += +[0-9]+$" } -- 2.17.1