All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.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>,
	Namhyung Kim <namhyung@kernel.org>,
	linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
	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>
Subject: Re: [PATCH v7 5/5] perf metric: Don't compute unused events.
Date: Fri, 15 Jan 2021 11:08:29 +0100	[thread overview]
Message-ID: <20210115100829.GA1478666@krava> (raw)
In-Reply-To: <20210112230434.2631593-6-irogers@google.com>

On Tue, Jan 12, 2021 at 03:04:34PM -0800, Ian Rogers wrote:
> 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 the expression parsing code by:
>  - getting rid of the "other" parsing and introducing a boolean argument
>    to say whether ids should be computed or not.
>  - expressions are changed so that a pair of value and ids are returned.
>  - when computing the metric value the ids are unused.
>  - when computing the ids, constant values and smt_on are assigned to
>    the value.
>  - If the value is from an event ID then the event is added to the ids
>    hashmap and the value set to bottom (encoded as NAN).
>  - Typically operators union IDs for their inputs and set the value to
>    bottom, however, if the inputs are constant then these are computed and
>    propagated as the value.
>  - If the input is constant to certain operators like:
>  IDS1 if CONST else IDS2
>    then the result will be either IDS1 or IDS2 depending on CONST (which
>    may be evaluated from an entire expression), and so IDS1 or IDS2 may
>    be discarded avoiding events from being programmed.
>  - The ids at the end of parsing are added to the context.

there's lot of refactoring going on, any chance this could be broken
down to more patches?

thanks,
jirka


      reply	other threads:[~2021-01-15 10:10 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-12 23:04 [PATCH v7 0/5] Don't compute events that won't be used in a metric Ian Rogers
2021-01-12 23:04 ` [PATCH v7 1/5] perf metric: Restructure struct expr_parse_ctx Ian Rogers
2021-01-15 10:08   ` Jiri Olsa
2021-01-12 23:04 ` [PATCH v7 2/5] perf metric: Use NAN for missing event IDs Ian Rogers
2021-01-12 23:04 ` [PATCH v7 3/5] perf metric: Rename expr__find_other Ian Rogers
2021-01-12 23:04 ` [PATCH v7 4/5] perf metric: Add utilities to work on ids map Ian Rogers
2021-01-15 10:08   ` Jiri Olsa
2021-01-12 23:04 ` [PATCH v7 5/5] perf metric: Don't compute unused events Ian Rogers
2021-01-15 10:08   ` Jiri Olsa [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=20210115100829.GA1478666@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=john.garry@huawei.com \
    --cc=kjain@linux.ibm.com \
    --cc=linux-kernel@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 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.