]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - tools/perf/ui/stdio/hist.c
perf maps: Rename map_groups.h to maps.h
[linux.git] / tools / perf / ui / stdio / hist.c
index 5365606e9dad1453b1a3e7aed0ff090e78938ce8..2ab2af4d48494ed44ee8a0dddc6a214aa441ed93 100644 (file)
@@ -8,13 +8,14 @@
 #include "../../util/event.h"
 #include "../../util/hist.h"
 #include "../../util/map.h"
-#include "../../util/map_groups.h"
+#include "../../util/maps.h"
 #include "../../util/symbol.h"
 #include "../../util/sort.h"
 #include "../../util/evsel.h"
 #include "../../util/srcline.h"
 #include "../../util/string2.h"
 #include "../../util/thread.h"
+#include "../../util/block-info.h"
 #include <linux/ctype.h>
 #include <linux/zalloc.h>
 
@@ -558,6 +559,25 @@ static int hist_entry__block_fprintf(struct hist_entry *he,
        return ret;
 }
 
+static int hist_entry__individual_block_fprintf(struct hist_entry *he,
+                                               char *bf, size_t size,
+                                               FILE *fp)
+{
+       int ret = 0;
+
+       struct perf_hpp hpp = {
+               .buf            = bf,
+               .size           = size,
+               .skip           = false,
+       };
+
+       hist_entry__snprintf(he, &hpp);
+       if (!hpp.skip)
+               ret += fprintf(fp, "%s\n", bf);
+
+       return ret;
+}
+
 static int hist_entry__fprintf(struct hist_entry *he, size_t size,
                               char *bf, size_t bfsz, FILE *fp,
                               bool ignore_callchains)
@@ -580,6 +600,9 @@ static int hist_entry__fprintf(struct hist_entry *he, size_t size,
        if (symbol_conf.report_block)
                return hist_entry__block_fprintf(he, bf, size, fp);
 
+       if (symbol_conf.report_individual_block)
+               return hist_entry__individual_block_fprintf(he, bf, size, fp);
+
        hist_entry__snprintf(he, &hpp);
 
        ret = fprintf(fp, "%s\n", bf);
@@ -834,7 +857,11 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows,
                if (h->filtered)
                        continue;
 
-               percent = hist_entry__get_percent_limit(h);
+               if (symbol_conf.report_individual_block)
+                       percent = block_info__total_cycles_percent(h);
+               else
+                       percent = hist_entry__get_percent_limit(h);
+
                if (percent < min_pcnt)
                        continue;
 
@@ -858,7 +885,7 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows,
                }
 
                if (h->ms.map == NULL && verbose > 1) {
-                       map_groups__fprintf(h->thread->mg, fp);
+                       maps__fprintf(h->thread->maps, fp);
                        fprintf(fp, "%.10s end\n", graph_dotted_line);
                }
        }