From: "Liang, Kan" <kan.liang@linux.intel.com>
To: Ian Rogers <irogers@google.com>
Cc: acme@kernel.org, mingo@redhat.com, peterz@infradead.org,
namhyung@kernel.org, jolsa@kernel.org, adrian.hunter@intel.com,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
ak@linux.intel.com, eranian@google.com, ahmad.yasin@intel.com
Subject: Re: [PATCH 5/8] perf stat,jevents: Introduce Default tags for the default mode
Date: Tue, 13 Jun 2023 16:11:27 -0400 [thread overview]
Message-ID: <cd8009fe-9049-2c29-d5d9-1205ce98cb47@linux.intel.com> (raw)
In-Reply-To: <CAP-5=fU_5fkJZ49B2yxkS4usuKw9fXZ=o-oJo3n5-j5YTAWNvA@mail.gmail.com>
On 2023-06-13 3:59 p.m., Ian Rogers wrote:
> On Wed, Jun 7, 2023 at 9:27 AM <kan.liang@linux.intel.com> wrote:
>>
>> From: Kan Liang <kan.liang@linux.intel.com>
>>
>> Introduce a new metricgroup, Default, to tag all the metric groups which
>> will be collected in the default mode.
>>
>> Add a new field, DefaultMetricgroupName, in the JSON file to indicate
>> the real metric group name. It will be printed in the default output
>> to replace the event names.
>>
>> There is nothing changed for the output format.
>>
>> On SPR, both TopdownL1 and TopdownL2 are displayed in the default
>> output.
>>
>> On ARM, Intel ICL and later platforms (before SPR), only TopdownL1 is
>> displayed in the default output.
>>
>> Suggested-by: Stephane Eranian <eranian@google.com>
>> Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
>> ---
>> tools/perf/builtin-stat.c | 4 ++--
>> tools/perf/pmu-events/jevents.py | 5 +++--
>> tools/perf/pmu-events/pmu-events.h | 1 +
>> tools/perf/util/metricgroup.c | 3 +++
>> 4 files changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
>> index c87c6897edc9..2269b3e90e9b 100644
>> --- a/tools/perf/builtin-stat.c
>> +++ b/tools/perf/builtin-stat.c
>> @@ -2154,14 +2154,14 @@ static int add_default_attributes(void)
>> * Add TopdownL1 metrics if they exist. To minimize
>> * multiplexing, don't request threshold computation.
>> */
>> - if (metricgroup__has_metric(pmu, "TopdownL1")) {
>> + if (metricgroup__has_metric(pmu, "Default")) {
>> struct evlist *metric_evlist = evlist__new();
>> struct evsel *metric_evsel;
>>
>> if (!metric_evlist)
>> return -1;
>>
>> - if (metricgroup__parse_groups(metric_evlist, pmu, "TopdownL1",
>> + if (metricgroup__parse_groups(metric_evlist, pmu, "Default",
>> /*metric_no_group=*/false,
>> /*metric_no_merge=*/false,
>> /*metric_no_threshold=*/true,
>> diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py
>> index 7ed258be1829..12e80bb7939b 100755
>> --- a/tools/perf/pmu-events/jevents.py
>> +++ b/tools/perf/pmu-events/jevents.py
>> @@ -54,8 +54,8 @@ _json_event_attributes = [
>> # Attributes that are in pmu_metric rather than pmu_event.
>> _json_metric_attributes = [
>> 'pmu', 'metric_name', 'metric_group', 'metric_expr', 'metric_threshold',
>> - 'desc', 'long_desc', 'unit', 'compat', 'metricgroup_no_group', 'aggr_mode',
>> - 'event_grouping'
>> + 'desc', 'long_desc', 'unit', 'compat', 'metricgroup_no_group',
>> + 'default_metricgroup_name', 'aggr_mode', 'event_grouping'
>> ]
>> # Attributes that are bools or enum int values, encoded as '0', '1',...
>> _json_enum_attributes = ['aggr_mode', 'deprecated', 'event_grouping', 'perpkg']
>> @@ -307,6 +307,7 @@ class JsonEvent:
>> self.metric_name = jd.get('MetricName')
>> self.metric_group = jd.get('MetricGroup')
>> self.metricgroup_no_group = jd.get('MetricgroupNoGroup')
>> + self.default_metricgroup_name = jd.get('DefaultMetricgroupName')
>> self.event_grouping = convert_metric_constraint(jd.get('MetricConstraint'))
>> self.metric_expr = None
>> if 'MetricExpr' in jd:
>> diff --git a/tools/perf/pmu-events/pmu-events.h b/tools/perf/pmu-events/pmu-events.h
>> index 8cd23d656a5d..caf59f23cd64 100644
>> --- a/tools/perf/pmu-events/pmu-events.h
>> +++ b/tools/perf/pmu-events/pmu-events.h
>> @@ -61,6 +61,7 @@ struct pmu_metric {
>> const char *desc;
>> const char *long_desc;
>> const char *metricgroup_no_group;
>> + const char *default_metricgroup_name;
>> enum aggr_mode_class aggr_mode;
>> enum metric_event_groups event_grouping;
>> };
>> diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
>> index 74f2d8efc02d..efafa02db5e5 100644
>> --- a/tools/perf/util/metricgroup.c
>> +++ b/tools/perf/util/metricgroup.c
>> @@ -137,6 +137,8 @@ struct metric {
>> * output.
>> */
>> const char *metric_unit;
>> + /** Optional default metric group name */
>> + const char *default_metricgroup_name;
>
> Adding a bit more to the comment would be useful, like:
>
> Optional name of the metric group reported if the Default metric group
> is being processed.
Sure.
Thanks,
Kan
>
>> /** Optional null terminated array of referenced metrics. */
>> struct metric_ref *metric_refs;
>> /**
>> @@ -219,6 +221,7 @@ static struct metric *metric__new(const struct pmu_metric *pm,
>>
>> m->pmu = pm->pmu ?: "cpu";
>> m->metric_name = pm->metric_name;
>> + m->default_metricgroup_name = pm->default_metricgroup_name;
>> m->modifier = NULL;
>> if (modifier) {
>> m->modifier = strdup(modifier);
>> --
>> 2.35.1
>>
next prev parent reply other threads:[~2023-06-13 20:12 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-07 16:26 [PATCH 0/8] New metricgroup output in perf stat default mode kan.liang
2023-06-07 16:26 ` [PATCH 1/8] perf metric: Fix no group check kan.liang
2023-06-13 19:22 ` Ian Rogers
2023-06-07 16:26 ` [PATCH 2/8] perf evsel: Fix the annotation for hardware events on hybrid kan.liang
2023-06-13 19:35 ` Ian Rogers
2023-06-13 20:06 ` Liang, Kan
2023-06-13 21:18 ` Arnaldo Carvalho de Melo
2023-06-13 23:57 ` Liang, Kan
2023-06-07 16:26 ` [PATCH 3/8] perf metric: JSON flag to default metric group kan.liang
2023-06-13 19:44 ` Ian Rogers
2023-06-13 20:10 ` Liang, Kan
2023-06-13 20:28 ` Ian Rogers
2023-06-13 20:59 ` Liang, Kan
2023-06-13 21:28 ` Ian Rogers
2023-06-14 0:02 ` Liang, Kan
2023-06-07 16:26 ` [PATCH 4/8] perf vendor events arm64: Add default tags into topdown L1 metrics kan.liang
2023-06-13 19:45 ` Ian Rogers
2023-06-13 20:31 ` Arnaldo Carvalho de Melo
2023-06-14 14:30 ` John Garry
2023-06-16 3:17 ` Liang, Kan
2023-06-07 16:26 ` [PATCH 5/8] perf stat,jevents: Introduce Default tags for the default mode kan.liang
2023-06-13 19:59 ` Ian Rogers
2023-06-13 20:11 ` Liang, Kan [this message]
2023-06-07 16:26 ` [PATCH 6/8] perf stat,metrics: New metricgroup output " kan.liang
2023-06-13 20:16 ` Ian Rogers
2023-06-13 20:50 ` Liang, Kan
2023-06-07 16:26 ` [PATCH 7/8] pert tests: Support metricgroup perf stat JSON output kan.liang
2023-06-13 20:17 ` Ian Rogers
2023-06-13 20:30 ` Arnaldo Carvalho de Melo
2023-06-07 16:27 ` [PATCH 8/8] perf test: Add test case for the standard perf stat output kan.liang
2023-06-13 20:21 ` Ian Rogers
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=cd8009fe-9049-2c29-d5d9-1205ce98cb47@linux.intel.com \
--to=kan.liang@linux.intel.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ahmad.yasin@intel.com \
--cc=ak@linux.intel.com \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).