From: Andi Kleen <ak@linux.intel.com>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
linux-kernel@vger.kernel.org, Jin Yao <yao.jin@linux.intel.com>,
John Garry <john.garry@huawei.com>, Paul Clarke <pc@us.ibm.com>,
kajoljain <kjain@linux.ibm.com>,
Stephane Eranian <eranian@google.com>,
Sandeep Dasgupta <sdasgup@google.com>,
linux-perf-users@vger.kernel.org
Subject: Re: [PATCH 5/5] perf metric: Don't compute unused events.
Date: Fri, 13 Nov 2020 15:34:15 -0800 [thread overview]
Message-ID: <20201113233415.GJ894261@tassilo.jf.intel.com> (raw)
In-Reply-To: <20201113001651.544348-6-irogers@google.com>
The patch does a lot of stuff and is hard to review.
The earlier patches all look good to me.
>
> static int
> __expr__parse(double *val, struct expr_parse_ctx *ctx, const char *expr,
> - int start, int runtime)
> + bool compute_ids, int runtime)
> {
> struct expr_scanner_ctx scanner_ctx = {
> - .start_token = start,
Okay so why do we not need that anymore?
This should probably be a separate change.
I'm not sure about the NaN handling. Why can't you use some
other value (perhaps 0 with some special case for division)
After all the computed values of the dead branch shouldn't
be used anyways, so I don't think we need the extra NaN
ceremony everywhere.
The only thing that really matters is to track that the event
is not added and not resolved.
I think it would be a lot simpler if we changed the IF syntax.
The problem right now is that the condition is after the first
expression, so you can't use global state with an early reduction
to track if the if branch is dead or not.
If we used the C style cond ? a : b it could be
cond { set flag } '?' expr { reset flag } : expr { reset flag }
scanner checks flag and ignores the event if false
This would need changing the JSON files but that should be easy enough
with a script.
Or maybe at some point need to bite the bullet and build
an AST, but for now we probably can get away of not doing it.
-Andi
prev parent reply other threads:[~2020-11-13 23:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-13 0:16 [PATCH 0/5] Don't compute events that won't be used in a metric Ian Rogers
2020-11-13 0:16 ` [PATCH 1/5] perf metric: Restructure struct expr_parse_ctx Ian Rogers
2020-11-13 0:16 ` [PATCH 2/5] perf metric: Use NAN for missing event IDs Ian Rogers
2020-11-13 0:16 ` [PATCH 3/5] perf metric: Rename expr__find_other Ian Rogers
2020-11-13 0:16 ` [PATCH 4/5] perf metric: Add utilities to work on ids map Ian Rogers
2020-11-13 0:16 ` [PATCH 5/5] perf metric: Don't compute unused events Ian Rogers
2020-11-13 23:34 ` Andi Kleen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201113233415.GJ894261@tassilo.jf.intel.com \
--to=ak@linux.intel.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=john.garry@huawei.com \
--cc=jolsa@redhat.com \
--cc=kjain@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=pc@us.ibm.com \
--cc=peterz@infradead.org \
--cc=sdasgup@google.com \
--cc=yao.jin@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome