struct outstate {
        FILE *fh;
        bool newline;
+       const char *prefix;
 };
 
 #define METRIC_LEN  35
 static void do_new_line_std(struct outstate *os)
 {
        fputc('\n', os->fh);
+       fputs(os->prefix, os->fh);
        if (stat_config.aggr_mode == AGGR_NONE)
                fprintf(os->fh, "        ");
        if (stat_config.aggr_mode == AGGR_CORE)
                fprintf(output, "%s%s", csv_sep, evsel->cgrp->name);
 }
 
-static void printout(int id, int nr, struct perf_evsel *counter, double uval)
+static void printout(int id, int nr, struct perf_evsel *counter, double uval,
+                    char *prefix)
 {
-       struct outstate os = { .fh = stat_config.output };
        struct perf_stat_output_ctx out;
+       struct outstate os = {
+               .fh = stat_config.output,
+               .prefix = prefix ? prefix : ""
+       };
        print_metric_t pm = print_metric_std;
        void (*nl)(void *);
 
        out.new_line = nl;
        out.ctx = &os;
 
-       if (!csv_output && !stat_config.interval)
+       if (!csv_output)
                perf_stat__print_shadow_stats(counter, uval,
                                stat_config.aggr_mode == AGGR_GLOBAL ? 0 :
                                cpu_map__id_to_cpu(id),
                                continue;
                        }
                        uval = val * counter->scale;
-                       printout(id, nr, counter, uval);
+                       printout(id, nr, counter, uval, prefix);
                        if (!csv_output)
                                print_noise(counter, 1.0);
 
                        fprintf(output, "%s", prefix);
 
                uval = val * counter->scale;
-               printout(thread, 0, counter, uval);
+               printout(thread, 0, counter, uval, prefix);
 
                if (!csv_output)
                        print_noise(counter, 1.0);
        }
 
        uval = avg * counter->scale;
-       printout(-1, 0, counter, uval);
+       printout(-1, 0, counter, uval, prefix);
 
        print_noise(counter, avg);
 
                }
 
                uval = val * counter->scale;
-               printout(cpu, 0, counter, uval);
+               printout(cpu, 0, counter, uval, prefix);
                if (!csv_output)
                        print_noise(counter, 1.0);
                print_running(run, ena);