lkml.org 
[lkml]   [2018]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.14 013/100] perf test shell: Fix check open filename arg using 'perf trace' on s390x
    Date
    From: Thomas Richter <tmricht@linux.vnet.ibm.com>

    [ Upstream commit ccafc38f1c778847ab6d53dd7933260426731cf3 ]

    This 'perf test' case fails on s390x. The 'touch' command on s390x uses
    the 'openat' system call to open the file named on the command line:

    [root@s35lp76 perf]# perf probe -l
    probe:vfs_getname (on getname_flags:72@fs/namei.c with pathname)
    [root@s35lp76 perf]# perf trace -e open touch /tmp/abc
    0.400 ( 0.015 ms): touch/27542 open(filename:
    /usr/lib/locale/locale-archive, flags: CLOEXEC) = 3
    [root@s35lp76 perf]#

    There is no 'open' system call for file '/tmp/abc'. Instead the 'openat'
    system call is used:

    [root@s35lp76 perf]# strace touch /tmp/abc
    execve("/usr/bin/touch", ["touch", "/tmp/abc"], 0x3ffd547ec98
    /* 30 vars */) = 0
    [...]
    openat(AT_FDCWD, "/tmp/abc", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
    [...]

    On s390x the 'egrep' command does not find a matching pattern and
    returns an error.

    Fix this for s390x create a platform dependent command line to enable
    the 'perf probe' call to listen to the 'openat' system call and get the
    expected output.

    Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
    Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
    LPU-Reference: 20171114071847.2381-1-tmricht@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/n/tip-3qf38jk0prz54rhmhyu871my@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    tools/perf/tests/shell/trace+probe_vfs_getname.sh | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/tools/perf/tests/shell/trace+probe_vfs_getname.sh b/tools/perf/tests/shell/trace+probe_vfs_getname.sh
    index 2e68c5f120da..2a9ef080efd0 100755
    --- a/tools/perf/tests/shell/trace+probe_vfs_getname.sh
    +++ b/tools/perf/tests/shell/trace+probe_vfs_getname.sh
    @@ -17,8 +17,10 @@ skip_if_no_perf_probe || exit 2
    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]+$"
    + test "$(uname -m)" = s390x && { svc="openat"; txt="dfd: +CWD, +"; }
    +
    + perf trace -e ${svc:-open} touch $file 2>&1 | \
    + egrep " +[0-9]+\.[0-9]+ +\( +[0-9]+\.[0-9]+ ms\): +touch\/[0-9]+ ${svc:-open}\(${txt}filename: +${file}, +flags: CREAT\|NOCTTY\|NONBLOCK\|WRONLY, +mode: +IRUGO\|IWUGO\) += +[0-9]+$"
    }


    --
    2.11.0
    \
     
     \ /
      Last update: 2018-01-29 00:18    [W:4.054 / U:0.680 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site