Messages in this thread | | | Date | Mon, 12 Aug 2019 10:35:43 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH v3] perf diff: Report noisy for cycles diff |
| |
On Sat, Aug 10, 2019 at 07:30:29AM +0800, Jin Yao wrote:
SNIP
> static int process_block_per_sym(struct hist_entry *he) > @@ -684,6 +694,21 @@ static struct hist_entry *get_block_pair(struct hist_entry *he, > return NULL; > } > > +static void init_spark_values(unsigned long *svals, int num) > +{ > + for (int i = 0; i < num; i++) > + svals[i] = 0; > +} > + > +static void update_spark_value(unsigned long *svals, int num, > + struct stats *stats, u64 val) > +{ > + int n = stats->n; > + > + if (n < num) > + svals[n] = val; > +} > + > static void compute_cycles_diff(struct hist_entry *he, > struct hist_entry *pair) > { > @@ -692,6 +717,23 @@ static void compute_cycles_diff(struct hist_entry *he, > pair->diff.cycles = > pair->block_info->cycles_aggr / pair->block_info->num_aggr - > he->block_info->cycles_aggr / he->block_info->num_aggr; > +
should below code be executed only for show_noisy?
jirka
> + init_stats(&pair->diff.stats); > + init_spark_values(pair->diff.svals, NUM_SPARKS); > + > + for (int i = 0; i < pair->block_info->num; i++) { > + u64 val; > + > + if (i >= he->block_info->num || i >= NUM_SPARKS) > + break; > + > + val = labs(pair->block_info->cycles_spark[i] - > + he->block_info->cycles_spark[i]); > + > + update_spark_value(pair->diff.svals, NUM_SPARKS, > + &pair->diff.stats, val); > + update_stats(&pair->diff.stats, val); > + } > } > }
SNIP
| |