[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b2ba589e-d01a-18a1-57cc-3a6626961114@linux.intel.com>
Date: Sat, 16 Mar 2019 07:08:07 +0800
From: "Jin, Yao" <yao.jin@...ux.intel.com>
To: Jiri Olsa <jolsa@...hat.com>
Cc: acme@...nel.org, jolsa@...nel.org, peterz@...radead.org,
mingo@...hat.com, alexander.shishkin@...ux.intel.com,
Linux-kernel@...r.kernel.org, ak@...ux.intel.com,
kan.liang@...el.com, yao.jin@...el.com
Subject: Re: [PATCH v1 2/3] perf stat: Support coresum event qualifier
On 3/15/2019 9:34 PM, Jiri Olsa wrote:
> On Sat, Mar 16, 2019 at 12:04:15AM +0800, Jin Yao wrote:
>
> SNIP
>
>> +static void print_counter_aggrdata(struct perf_stat_config *config,
>> + struct perf_evsel *counter, int s,
>> + char *prefix, bool metric_only,
>> + bool *first)
>> +{
>> + struct aggr_data ad;
>> + FILE *output = config->output;
>> + u64 ena, run, val;
>> + int id, nr;
>> + double uval;
>> +
>> + ad.id = id = config->aggr_map->map[s];
>> + ad.val = ad.ena = ad.run = 0;
>> + ad.nr = 0;
>> + if (!collect_data(config, counter, aggr_cb, &ad))
>> + return;
>> +
>> + nr = ad.nr;
>> + ena = ad.ena;
>> + run = ad.run;
>> + val = ad.val;
>> + if (*first && metric_only) {
>> + *first = false;
>> + aggr_printout(config, counter, id, nr);
>> + }
>> + if (prefix && !metric_only)
>> + fprintf(output, "%s", prefix);
>> +
>> + uval = val * counter->scale;
>> + printout(config, id, nr, counter, uval, prefix,
>> + run, ena, 1.0, &rt_stat);
>> + if (!metric_only)
>> + fputc('\n', output);
>> +}
>
> plese put the factoring out of print_counter_aggrdata function
> into separate patch
>
> thanks,
> jirka
>
>
OK!
Thanks
Jin Yao
>> +
>> static void print_aggr(struct perf_stat_config *config,
>> struct perf_evlist *evlist,
>> char *prefix)
>> @@ -606,9 +649,7 @@ static void print_aggr(struct perf_stat_config *config,
>> bool metric_only = config->metric_only;
>> FILE *output = config->output;
>> struct perf_evsel *counter;
>> - int s, id, nr;
>> - double uval;
>> - u64 ena, run, val;
>> + int s;
>> bool first;
>>
>> if (!(config->aggr_map || config->aggr_get_id))
>> @@ -621,36 +662,16 @@ static void print_aggr(struct perf_stat_config *config,
>> * Without each counter has its own line.
>> */
>> for (s = 0; s < config->aggr_map->nr; s++) {
>> - struct aggr_data ad;
>> if (prefix && metric_only)
>> fprintf(output, "%s", prefix);
>>
>> - ad.id = id = config->aggr_map->map[s];
>> first = true;
>> evlist__for_each_entry(evlist, counter) {
>> if (is_duration_time(counter))
>> continue;
>> -
>> - ad.val = ad.ena = ad.run = 0;
>> - ad.nr = 0;
>> - if (!collect_data(config, counter, aggr_cb, &ad))
>> - continue;
>> - nr = ad.nr;
>> - ena = ad.ena;
>> - run = ad.run;
>> - val = ad.val;
>> - if (first && metric_only) {
>> - first = false;
>> - aggr_printout(config, counter, id, nr);
>> - }
>> - if (prefix && !metric_only)
>> - fprintf(output, "%s", prefix);
>> -
>> - uval = val * counter->scale;
>> - printout(config, id, nr, counter, uval, prefix,
>> - run, ena, 1.0, &rt_stat);
>> - if (!metric_only)
>> - fputc('\n', output);
>> + print_counter_aggrdata(config, counter, s,
>> + prefix, metric_only,
>> + &first);
>
> SNIP
>
Powered by blists - more mailing lists