lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ