|
@@ -760,6 +760,15 @@ static int __symbol__account_cycles(struct annotation *notes,
|
|
|
ch[offset].num_aggr++;
|
|
|
ch[offset].cycles_aggr += cycles;
|
|
|
|
|
|
+ if (cycles > ch[offset].cycles_max)
|
|
|
+ ch[offset].cycles_max = cycles;
|
|
|
+
|
|
|
+ if (ch[offset].cycles_min) {
|
|
|
+ if (cycles && cycles < ch[offset].cycles_min)
|
|
|
+ ch[offset].cycles_min = cycles;
|
|
|
+ } else
|
|
|
+ ch[offset].cycles_min = cycles;
|
|
|
+
|
|
|
if (!have_start && ch[offset].have_start)
|
|
|
return 0;
|
|
|
if (ch[offset].num) {
|
|
@@ -953,8 +962,11 @@ void annotation__compute_ipc(struct annotation *notes, size_t size)
|
|
|
if (ch->have_start)
|
|
|
annotation__count_and_fill(notes, ch->start, offset, ch);
|
|
|
al = notes->offsets[offset];
|
|
|
- if (al && ch->num_aggr)
|
|
|
+ if (al && ch->num_aggr) {
|
|
|
al->cycles = ch->cycles_aggr / ch->num_aggr;
|
|
|
+ al->cycles_max = ch->cycles_max;
|
|
|
+ al->cycles_min = ch->cycles_min;
|
|
|
+ }
|
|
|
notes->have_cycles = true;
|
|
|
}
|
|
|
}
|