linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/27] Constify tool pointers
@ 2024-07-12 18:10 Ian Rogers
  2024-07-12 18:10 ` [PATCH v5 01/27] perf auxtrace: Remove dummy tools Ian Rogers
                   ` (25 more replies)
  0 siblings, 26 replies; 29+ messages in thread
From: Ian Rogers @ 2024-07-12 18:10 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.

v5: Rebase dropping asan fix merged by Namhyung.
v4: Simplify perf_session__deliver_synth_attr_event following Adrian's
    suggestions.
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 (27):
  perf auxtrace: Remove dummy tools
  perf s390-cpumsf: Remove unused struct
  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            |  39 +--
 tools/perf/util/data-convert-bt.c   |  34 ++-
 tools/perf/util/data-convert-json.c |  47 ++--
 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           | 366 +++-------------------------
 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 +-
 53 files changed, 977 insertions(+), 1102 deletions(-)
 create mode 100644 tools/perf/util/tool.c

-- 
2.45.2.993.g49e7a77208-goog



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

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

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-12 18:10 [PATCH v5 00/27] Constify tool pointers Ian Rogers
2024-07-12 18:10 ` [PATCH v5 01/27] perf auxtrace: Remove dummy tools Ian Rogers
2024-07-16  8:43   ` Adrian Hunter
2024-07-16 16:44   ` Leo Yan
2024-07-12 18:10 ` [PATCH v5 02/27] perf s390-cpumsf: Remove unused struct Ian Rogers
2024-07-12 18:10 ` [PATCH v5 04/27] perf tool: Move fill defaults into tool.c Ian Rogers
2024-07-12 18:10 ` [PATCH v5 05/27] perf tool: Add perf_tool__init Ian Rogers
2024-07-12 18:10 ` [PATCH v5 06/27] perf kmem: Use perf_tool__init Ian Rogers
2024-07-12 18:10 ` [PATCH v5 07/27] perf buildid-list: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 08/27] perf kvm: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 09/27] perf lock: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 10/27] perf evlist: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 11/27] perf record: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 12/27] perf c2c: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 13/27] perf script: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 14/27] perf inject: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 15/27] perf report: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 16/27] perf stat: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 17/27] perf annotate: " Ian Rogers
2024-07-12 18:10 ` [PATCH v5 18/27] perf sched: " Ian Rogers
2024-07-12 18:11 ` [PATCH v5 19/27] perf mem: " Ian Rogers
2024-07-12 18:11 ` [PATCH v5 20/27] perf timechart: " Ian Rogers
2024-07-12 18:11 ` [PATCH v5 21/27] perf diff: " Ian Rogers
2024-07-12 18:11 ` [PATCH v5 22/27] perf data convert json: " Ian Rogers
2024-07-12 18:11 ` [PATCH v5 23/27] perf data convert ctf: " Ian Rogers
2024-07-12 18:11 ` [PATCH v5 24/27] perf test event_update: Ensure tools is initialized Ian Rogers
2024-07-12 18:11 ` [PATCH v5 25/27] perf kwork: Use perf_tool__init Ian Rogers
2024-07-12 18:11 ` [PATCH v5 26/27] perf tool: Remove perf_tool__fill_defaults Ian Rogers
2024-07-12 18:11 ` [PATCH v5 27/27] 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).