linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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
>>

  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).