|
@@ -321,9 +321,11 @@ void hists__inc_nr_entries(struct hists *hists, struct hist_entry *h)
|
|
|
{
|
|
|
if (!h->filtered) {
|
|
|
hists__calc_col_len(hists, h);
|
|
|
- ++hists->nr_entries;
|
|
|
- hists->stats.total_period += h->stat.period;
|
|
|
+ hists->nr_non_filtered_entries++;
|
|
|
+ hists->stats.total_non_filtered_period += h->stat.period;
|
|
|
}
|
|
|
+ hists->nr_entries++;
|
|
|
+ hists->stats.total_period += h->stat.period;
|
|
|
}
|
|
|
|
|
|
static u8 symbol__parent_filter(const struct symbol *parent)
|
|
@@ -674,8 +676,9 @@ void hists__output_resort(struct hists *hists)
|
|
|
next = rb_first(root);
|
|
|
hists->entries = RB_ROOT;
|
|
|
|
|
|
- hists->nr_entries = hists->nr_non_filtered_entries = 0;
|
|
|
- hists->stats.total_period = hists->stats.total_non_filtered_period = 0;
|
|
|
+ hists->nr_non_filtered_entries = 0;
|
|
|
+ hists->stats.total_period = 0;
|
|
|
+ hists->stats.total_non_filtered_period = 0;
|
|
|
hists__reset_col_len(hists);
|
|
|
|
|
|
while (next) {
|
|
@@ -694,16 +697,11 @@ static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h
|
|
|
if (h->filtered)
|
|
|
return;
|
|
|
|
|
|
- ++hists->nr_entries;
|
|
|
++hists->nr_non_filtered_entries;
|
|
|
- if (h->ms.unfolded) {
|
|
|
- hists->nr_entries += h->nr_rows;
|
|
|
+ if (h->ms.unfolded)
|
|
|
hists->nr_non_filtered_entries += h->nr_rows;
|
|
|
- }
|
|
|
h->row_offset = 0;
|
|
|
- hists->stats.total_period += h->stat.period;
|
|
|
hists->stats.total_non_filtered_period += h->stat.period;
|
|
|
- hists->stats.nr_events[PERF_RECORD_SAMPLE] += h->stat.nr_events;
|
|
|
hists->stats.nr_non_filtered_samples += h->stat.nr_events;
|
|
|
|
|
|
hists__calc_col_len(hists, h);
|
|
@@ -726,9 +724,8 @@ void hists__filter_by_dso(struct hists *hists)
|
|
|
{
|
|
|
struct rb_node *nd;
|
|
|
|
|
|
- hists->nr_entries = hists->stats.total_period = 0;
|
|
|
- hists->nr_non_filtered_entries = hists->stats.total_non_filtered_period = 0;
|
|
|
- hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
|
|
+ hists->nr_non_filtered_entries = 0;
|
|
|
+ hists->stats.total_non_filtered_period = 0;
|
|
|
hists->stats.nr_non_filtered_samples = 0;
|
|
|
hists__reset_col_len(hists);
|
|
|
|
|
@@ -761,9 +758,8 @@ void hists__filter_by_thread(struct hists *hists)
|
|
|
{
|
|
|
struct rb_node *nd;
|
|
|
|
|
|
- hists->nr_entries = hists->stats.total_period = 0;
|
|
|
- hists->nr_non_filtered_entries = hists->stats.total_non_filtered_period = 0;
|
|
|
- hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
|
|
+ hists->nr_non_filtered_entries = 0;
|
|
|
+ hists->stats.total_non_filtered_period = 0;
|
|
|
hists->stats.nr_non_filtered_samples = 0;
|
|
|
hists__reset_col_len(hists);
|
|
|
|
|
@@ -794,9 +790,8 @@ void hists__filter_by_symbol(struct hists *hists)
|
|
|
{
|
|
|
struct rb_node *nd;
|
|
|
|
|
|
- hists->nr_entries = hists->stats.total_period = 0;
|
|
|
- hists->nr_non_filtered_entries = hists->stats.total_non_filtered_period = 0;
|
|
|
- hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
|
|
+ hists->nr_non_filtered_entries = 0;
|
|
|
+ hists->stats.total_non_filtered_period = 0;
|
|
|
hists->stats.nr_non_filtered_samples = 0;
|
|
|
hists__reset_col_len(hists);
|
|
|
|
|
@@ -942,3 +937,9 @@ int hists__link(struct hists *leader, struct hists *other)
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
+u64 hists__total_period(struct hists *hists)
|
|
|
+{
|
|
|
+ return symbol_conf.filter_relative ? hists->stats.total_non_filtered_period :
|
|
|
+ hists->stats.total_period;
|
|
|
+}
|