All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 0/8] Don't compute events that won't be used in a metric.
@ 2021-09-18  6:35 Ian Rogers
  2021-09-18  6:35 ` [PATCH v8 1/8] perf metric: Restructure struct expr_parse_ctx Ian Rogers
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Ian Rogers @ 2021-09-18  6:35 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	linux-kernel, Andi Kleen, Jin Yao, John Garry, Paul Clarke,
	kajoljain, linux-perf-users
  Cc: Stephane Eranian, Sandeep Dasgupta, Ian Rogers

    
For a metric like:
  EVENT1 if #smt_on else EVENT2
    
currently EVENT1 and EVENT2 will be measured and then when the metric
is reported EVENT1 or EVENT2 will be printed depending on the value
from smt_on() during the expr parsing. Computing both events is
unnecessary and can lead to multiplexing as discussed in this thread:
https://lore.kernel.org/lkml/20201110100346.2527031-1-irogers@google.com/

This change modifies expression parsing so that constants are
considered when building the set of ids (events) and only events not
contributing to a constant value are measured.

v8. rebases, adds an ability to compute metrics with no events and
    further breaks apart the "Don't compute unused events" part of the
    change as requested by Jiri Olsa <jolsa@redhat.com>.

v7. fixes the fix to be in the correct patch.

v6. rebases and fixes issues raised by Namhyung Kim <namhyung@kernel.org>,
a memory leak and a function comment.

v5. uses macros to reduce boiler plate in patch 5/5 as suggested by
Andi Kleen <ak@linux.intel.com>.

v4. reduces references to BOTTOM/NAN in patch 5/5 by using utility
functions. It improves comments and fixes an unnecessary union in a
peephole optimization.

v3. fixes an assignment in patch 2/5. In patch 5/5 additional comments
are added and useless frees are replaced by asserts. A new peephole
optimization is added for the case CONST IF expr ELSE CONST, where the
the constants are identical, as we don't need to evaluate the IF
condition.

v2. is a rebase.

Ian Rogers (8):
  perf metric: Restructure struct expr_parse_ctx.
  perf metric: Use NAN for missing event IDs.
  perf expr: Modify code layout
  perf metric: Rename expr__find_other.
  perf metric: Add utilities to work on ids map.
  perf metric: Allow metrics with no events
  perf metric: Don't compute unused events.
  perf test: Add metric test for eliminating events

 tools/perf/tests/expr.c       | 159 +++++++++++-----
 tools/perf/tests/pmu-events.c |  50 ++---
 tools/perf/util/expr.c        | 137 ++++++++++++--
 tools/perf/util/expr.h        |  21 ++-
 tools/perf/util/expr.l        |   9 -
 tools/perf/util/expr.y        | 343 ++++++++++++++++++++++++++--------
 tools/perf/util/metricgroup.c | 145 +++++++-------
 tools/perf/util/stat-shadow.c |  54 ++++--
 8 files changed, 650 insertions(+), 268 deletions(-)

-- 
2.33.0.464.g1972c5931b-goog


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

end of thread, other threads:[~2021-09-23  0:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-18  6:35 [PATCH v8 0/8] Don't compute events that won't be used in a metric Ian Rogers
2021-09-18  6:35 ` [PATCH v8 1/8] perf metric: Restructure struct expr_parse_ctx Ian Rogers
2021-09-22 20:59   ` Jiri Olsa
2021-09-23  0:21     ` Ian Rogers
2021-09-18  6:35 ` [PATCH v8 2/8] perf metric: Use NAN for missing event IDs Ian Rogers
2021-09-18  6:35 ` [PATCH v8 3/8] perf expr: Modify code layout Ian Rogers
2021-09-22 20:58   ` Jiri Olsa
2021-09-18  6:35 ` [PATCH v8 4/8] perf metric: Rename expr__find_other Ian Rogers
2021-09-18  6:35 ` [PATCH v8 5/8] perf metric: Add utilities to work on ids map Ian Rogers
2021-09-22 20:58   ` Jiri Olsa
2021-09-22 20:59   ` Jiri Olsa
2021-09-18  6:35 ` [PATCH v8 6/8] perf metric: Allow metrics with no events Ian Rogers
2021-09-18  6:35 ` [PATCH v8 7/8] perf metric: Don't compute unused events Ian Rogers
2021-09-18  6:35 ` [PATCH v8 8/8] perf test: Add metric test for eliminating events Ian Rogers
2021-09-20 13:46 ` [PATCH v8 0/8] Don't compute events that won't be used in a metric Andi Kleen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.