diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 24d20e7d125a8e2c4af0fee4f8ef005e66326633..c4f3a08f7c4831e3062c88f8f93c350eb47de220 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -224,7 +224,12 @@ static int __cmd_report(void)
 
 	perf_session__collapse_resort(session);
 	perf_session__output_resort(session, session->events_stats.total);
+	fprintf(stdout, "# Samples: %ld\n#\n", session->events_stats.total);
 	perf_session__fprintf_hists(session, stdout);
+	if (sort_order == default_sort_order &&
+	    parent_pattern == default_parent_pattern)
+		fprintf(stdout, "#\n# (For a higher level overview, try: perf report --sort comm,dso)\n#\n");
+
 	if (show_threads) {
 		bool raw_printing_style = !strcmp(pretty_printing_style, "raw");
 		perf_read_values_display(stdout, &show_threads_values,
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 270eb8f3dceeec2870d4fff00b01c4effbb8f3a0..6e416a62e0d603cd28fd604cde95304a8151a9d3 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -515,9 +515,6 @@ size_t perf_session__fprintf_hists(struct perf_session *self, FILE *fp)
 
 	init_rem_hits();
 
-	fprintf(fp, "# Samples: %ld\n", self->events_stats.total);
-	fprintf(fp, "#\n");
-
 	fprintf(fp, "# Overhead");
 	if (symbol_conf.show_nr_samples) {
 		if (symbol_conf.field_sep)
@@ -578,14 +575,6 @@ size_t perf_session__fprintf_hists(struct perf_session *self, FILE *fp)
 		ret += hist_entry__fprintf(fp, pos, self);
 	}
 
-	if (sort_order == default_sort_order &&
-			parent_pattern == default_parent_pattern) {
-		fprintf(fp, "#\n");
-		fprintf(fp, "# (For a higher level overview, try: perf report --sort comm,dso)\n");
-		fprintf(fp, "#\n");
-	}
-	fprintf(fp, "\n");
-
 	free(rem_sq_bracket);
 
 	return ret;