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

Reply via email to