Skip to content
  • Arnaldo Carvalho de Melo's avatar
    perf trace: Validate syscall list passed via -e argument · d0cc439b
    Arnaldo Carvalho de Melo authored
    
    
    The 'trace' tool was accepting any names passed and just looking if
    syscalls returned via the raw_syscalls:* tracepoints were in that list,
    leading to it accepting perf events and then never finding any, as those
    are not valid syscall names, confusing users.
    
    Fix it by checking each entry in the list using audit_name_to_syscall,
    telling the user which entries are invalid and suggesting where to look
    for valid syscall names.
    
    E.g:
    
      [root@zoo ~]# trace -e open,foo,bar,close,baz
      Error: Invalid syscall bar, baz, foo
      Hint:	 try 'perf list syscalls:sys_enter_*'
      Hint:	 and: 'man syscalls'
      [root@zoo ~]#
    
    Reported-by: default avatarFlavio Leitner <fbl@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Don Zickus <dzickus@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lkml.kernel.org/n/tip-4g1i3m1z6fzsrznn2umi02wa@git.kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d0cc439b