1. 20 Jun, 2024 17 commits
  2. 16 Jun, 2024 5 commits
  3. 14 Jun, 2024 5 commits
  4. 10 Jun, 2024 1 commit
    • Ian Rogers's avatar
      perf evsel: Refactor tool events · 6828d692
      Ian Rogers authored
      Tool events unnecessarily open a dummy perf event which is useless
      even with `perf record` which will still open a dummy event. Change
      the behavior of tool events so:
      
       - duration_time - call `rdclock` on open and then report the count as
         a delta since the start in evsel__read_counter. This moves code out
         of builtin-stat making it more general purpose.
      
       - user_time/system_time - open the fd as either `/proc/pid/stat` or
         `/proc/stat` for cases like system wide. evsel__read_counter will
         read the appropriate field out of the procfs file. These values
         were previously supplied by wait4, if the procfs read fails then
         the wait4 values are used, assuming the process/thread terminated.
         By reading user_time and system_time this way, interval mode, per
         PID and per CPU can be supported although there are restrictions
         given what the files provide (e.g. per PID can't be combined with
         per CPU).
      
      Opening any of the tool events for `perf record` is changed to return
      invalid.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Tested-by: default avatarWeilin Wang <weilin.wang@intel.com>
      Cc: Ravi Bangoria <ravi.bangoria@amd.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Dmitrii Dolgov <9erthalion6@gmail.com>
      Cc: Ze Gao <zegao2021@gmail.com>
      Cc: Song Liu <song@kernel.org>
      Cc: Leo Yan <leo.yan@linux.dev>
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240503232849.17752-1-irogers@google.com
      6828d692
  5. 07 Jun, 2024 7 commits
  6. 06 Jun, 2024 1 commit
    • Clément Le Goffic's avatar
      perf: parse-events: Fix compilation error while defining DEBUG_PARSER · 9aa61d8e
      Clément Le Goffic authored
      Compiling perf tool with 'DEBUG_PARSER=1' leads to errors:
      
      $> make -C tools/perf PARSER_DEBUG=1 NO_LIBTRACEEVENT=1
      ...
        CC      util/expr-flex.o
        CC      util/expr.o
      util/parse-events.c:33:12: error: redundant redeclaration of ‘parse_events_debug’ [-Werror=redundant-decls]
         33 | extern int parse_events_debug;
            |            ^~~~~~~~~~~~~~~~~~
      In file included from util/parse-events.c:18:
      util/parse-events-bison.h:43:12: note: previous declaration of ‘parse_events_debug’ with type ‘int’
         43 | extern int parse_events_debug;
            |            ^~~~~~~~~~~~~~~~~~
      util/expr.c:27:12: error: redundant redeclaration of ‘expr_debug’ [-Werror=redundant-decls]
         27 | extern int expr_debug;
            |            ^~~~~~~~~~
      In file included from util/expr.c:11:
      util/expr-bison.h:43:12: note: previous declaration of ‘expr_debug’ with type ‘int’
         43 | extern int expr_debug;
            |            ^~~~~~~~~~
      cc-1: all warnings being treated as errors
      
      Remove extern declaration from the parse-envents.c file as there is a
      conflict with the ones generated using bison and yacc tools from the file
      parse-events.[ly].
      Signed-off-by: default avatarClément Le Goffic <clement.legoffic@foss.st.com>
      Reviewed-by: default avatarIan Rogers <irogers@google.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: John Garry <john.g.garry@oracle.com>
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240605140453.614862-1-clement.legoffic@foss.st.com
      9aa61d8e
  7. 05 Jun, 2024 1 commit
  8. 04 Jun, 2024 2 commits
  9. 30 May, 2024 1 commit
    • Ian Rogers's avatar
      perf top: Allow filters on events · af752016
      Ian Rogers authored
      Allow filters to be added to perf top events. One use is to workaround
      issues with:
      ```
      $ perf top --uid="$(id -u)"
      ```
      which tries to scan /proc find processes belonging to the uid and can
      fail in such a pid terminates between the scan and the
      perf_event_open reporting:
      ```
      Error:
      The sys_perf_event_open() syscall returned with 3 (No such process) for event (cycles:P).
      /bin/dmesg | grep -i perf may provide additional information.
      ```
      A similar filter:
      ```
      $ perf top -e cycles:P --filter "uid == $(id -u)"
      ```
      doesn't fail this way.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: John Fastabend <john.fastabend@gmail.com>
      Cc: Changbin Du <changbin.du@huawei.com>
      Cc: Yang Jihong <yangjihong1@huawei.com>
      Cc: Andrii Nakryiko <andrii@kernel.org>
      Cc: bpf@vger.kernel.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240524205227.244375-4-irogers@google.com
      af752016