linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/28]  Constify tool pointers
@ 2024-06-29  4:53 Ian Rogers
  2024-06-29  4:53 ` [PATCH v3 01/28] perf auxtrace: Remove dummy tools Ian Rogers
                   ` (27 more replies)
  0 siblings, 28 replies; 32+ messages in thread
From: Ian Rogers @ 2024-06-29  4:53 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Kan Liang, John Garry, Will Deacon,
	James Clark, Mike Leach, Leo Yan, Suzuki K Poulose, Yicong Yang,
	Jonathan Cameron, Nick Terrell, Nick Desaulniers, Oliver Upton,
	Anshuman Khandual, Song Liu, Ilkka Koskinen, Athira Rajeev,
	Huacai Chen, Yanteng Si, Sun Haiyong, linux-kernel,
	linux-perf-users, linux-arm-kernel

struct perf_tool provides a set of function pointers that are called
through when processing perf data. To make filling the pointers less
cumbersome, if they are NULL perf_tools__fill_defaults will add
default do nothing implementations.

This change refactors struct perf_tool to have an init function that
provides the default implementation. The special use of NULL and
perf_tools__fill_defaults are removed. As a consequence the tool
pointers can then all be made const, which better reflects the
behavior a particular perf command would expect of the tool and to
some extent can reduce the cognitive load on someone working on a
command.

v3: Just remove auxtrace dummy tools [Adrian] and make s390-cpumsf
    struct removal its own patch [Adrian].
v2: Remove dummy tool initialization [Adrian] and make zero sized. Add
    cs-etm fix for address sanitizer build, found necessary when
    testing dummy tool change.

Ian Rogers (28):
  perf auxtrace: Remove dummy tools
  perf s390-cpumsf: Remove unused struct
  perf cs-etm: Fix address sanitizer dso build failure
  perf tool: Constify tool pointers
  perf tool: Move fill defaults into tool.c
  perf tool: Add perf_tool__init
  perf kmem: Use perf_tool__init
  perf buildid-list: Use perf_tool__init
  perf kvm: Use perf_tool__init
  perf lock: Use perf_tool__init
  perf evlist: Use perf_tool__init
  perf record: Use perf_tool__init
  perf c2c: Use perf_tool__init
  perf script: Use perf_tool__init
  perf inject: Use perf_tool__init
  perf report: Use perf_tool__init
  perf stat: Use perf_tool__init
  perf annotate: Use perf_tool__init
  perf sched: Use perf_tool__init
  perf mem: Use perf_tool__init
  perf timechart: Use perf_tool__init
  perf diff: Use perf_tool__init
  perf data convert json: Use perf_tool__init
  perf data convert ctf: Use perf_tool__init
  perf test event_update: Ensure tools is initialized
  perf kwork: Use perf_tool__init
  perf tool: Remove perf_tool__fill_defaults
  perf session: Constify tool

 tools/perf/arch/x86/util/event.c    |   4 +-
 tools/perf/bench/synthesize.c       |   2 +-
 tools/perf/builtin-annotate.c       |  44 ++--
 tools/perf/builtin-buildid-list.c   |  10 +
 tools/perf/builtin-c2c.c            |  33 ++-
 tools/perf/builtin-diff.c           |  30 ++-
 tools/perf/builtin-evlist.c         |  10 +-
 tools/perf/builtin-inject.c         | 159 ++++++------
 tools/perf/builtin-kmem.c           |  20 +-
 tools/perf/builtin-kvm.c            |  19 +-
 tools/perf/builtin-kwork.c          |  33 ++-
 tools/perf/builtin-lock.c           |  41 ++-
 tools/perf/builtin-mem.c            |  37 +--
 tools/perf/builtin-record.c         |  47 ++--
 tools/perf/builtin-report.c         |  67 +++--
 tools/perf/builtin-sched.c          |  50 ++--
 tools/perf/builtin-script.c         | 106 ++++----
 tools/perf/builtin-stat.c           |  26 +-
 tools/perf/builtin-timechart.c      |  25 +-
 tools/perf/builtin-top.c            |   2 +-
 tools/perf/builtin-trace.c          |   4 +-
 tools/perf/tests/cpumap.c           |   6 +-
 tools/perf/tests/dlfilter-test.c    |   2 +-
 tools/perf/tests/dwarf-unwind.c     |   2 +-
 tools/perf/tests/event_update.c     |   9 +-
 tools/perf/tests/stat.c             |   6 +-
 tools/perf/tests/thread-map.c       |   2 +-
 tools/perf/util/Build               |   1 +
 tools/perf/util/arm-spe.c           |  55 +---
 tools/perf/util/auxtrace.c          |  12 +-
 tools/perf/util/auxtrace.h          |  20 +-
 tools/perf/util/bpf-event.c         |   4 +-
 tools/perf/util/build-id.c          |  34 +--
 tools/perf/util/build-id.h          |   8 +-
 tools/perf/util/cs-etm.c            |  49 +---
 tools/perf/util/data-convert-bt.c   |  34 ++-
 tools/perf/util/data-convert-json.c |  47 ++--
 tools/perf/util/dso.h               |  10 +
 tools/perf/util/event.c             |  54 ++--
 tools/perf/util/event.h             |  38 +--
 tools/perf/util/header.c            |   6 +-
 tools/perf/util/header.h            |   4 +-
 tools/perf/util/hisi-ptt.c          |   6 +-
 tools/perf/util/intel-bts.c         |  37 +--
 tools/perf/util/intel-pt.c          |  30 +--
 tools/perf/util/jitdump.c           |   4 +-
 tools/perf/util/s390-cpumsf.c       |  11 +-
 tools/perf/util/session.c           | 372 ++++------------------------
 tools/perf/util/session.h           |   9 +-
 tools/perf/util/synthetic-events.c  |  80 +++---
 tools/perf/util/synthetic-events.h  |  70 +++---
 tools/perf/util/tool.c              | 294 ++++++++++++++++++++++
 tools/perf/util/tool.h              |  18 +-
 tools/perf/util/tsc.c               |   2 +-
 54 files changed, 998 insertions(+), 1107 deletions(-)
 create mode 100644 tools/perf/util/tool.c

-- 
2.45.2.803.g4e1b14247a-goog


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2024-07-11 16:08 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-29  4:53 [PATCH v3 00/28] Constify tool pointers Ian Rogers
2024-06-29  4:53 ` [PATCH v3 01/28] perf auxtrace: Remove dummy tools Ian Rogers
2024-07-11  6:43   ` Adrian Hunter
2024-07-11  6:46     ` Adrian Hunter
2024-07-11 16:08       ` Ian Rogers
2024-06-29  4:53 ` [PATCH v3 02/28] perf s390-cpumsf: Remove unused struct Ian Rogers
2024-06-29  4:53 ` [PATCH v3 03/28] perf cs-etm: Fix address sanitizer dso build failure Ian Rogers
2024-06-29  4:53 ` [PATCH v3 04/28] perf tool: Constify tool pointers Ian Rogers
2024-06-29  4:53 ` [PATCH v3 05/28] perf tool: Move fill defaults into tool.c Ian Rogers
2024-06-29  4:53 ` [PATCH v3 06/28] perf tool: Add perf_tool__init Ian Rogers
2024-06-29  4:53 ` [PATCH v3 07/28] perf kmem: Use perf_tool__init Ian Rogers
2024-06-29  4:53 ` [PATCH v3 08/28] perf buildid-list: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 09/28] perf kvm: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 10/28] perf lock: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 11/28] perf evlist: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 12/28] perf record: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 13/28] perf c2c: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 14/28] perf script: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 15/28] perf inject: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 16/28] perf report: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 17/28] perf stat: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 18/28] perf annotate: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 19/28] perf sched: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 20/28] perf mem: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 21/28] perf timechart: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 22/28] perf diff: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 23/28] perf data convert json: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 24/28] perf data convert ctf: " Ian Rogers
2024-06-29  4:53 ` [PATCH v3 25/28] perf test event_update: Ensure tools is initialized Ian Rogers
2024-06-29  4:53 ` [PATCH v3 26/28] perf kwork: Use perf_tool__init Ian Rogers
2024-06-29  4:53 ` [PATCH v3 27/28] perf tool: Remove perf_tool__fill_defaults Ian Rogers
2024-06-29  4:53 ` [PATCH v3 28/28] perf session: Constify tool Ian Rogers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).