perf: Don't output counters for perf record
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 15 Jun 2016 19:54:53 +0000 (15:54 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 17 Jun 2016 16:17:55 +0000 (12:17 -0400)
The value of the PMU counters is meaningless.  For perf record, we care
about overflow samples, not about the raw count.  Now that we have perf
stat, we don't need this functionality at all.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tools/profile/perf/perf.c
tools/profile/perf/perf_core.c
tools/profile/perf/perf_core.h

index 53042d0..b6b3aa1 100644 (file)
@@ -333,7 +333,7 @@ static int perf_record(struct perf_cmd *cmd, int argc, char *argv[])
        run_process_and_wait(opts.cmd_argc, opts.cmd_argv, &opts.cores);
        perf_stop_sampling(pctx);
        if (opts.verbose)
-               perf_context_show_values(pctx, stdout);
+               perf_context_show_events(pctx, stdout);
        /* The events are still counting and firing IRQs.  Let's be nice and turn
         * them off to minimize our impact. */
        perf_stop_events(pctx);
index f4ac2bf..0af257e 100644 (file)
@@ -604,24 +604,16 @@ void perf_stop_sampling(struct perf_context *pctx)
        xwrite(pctx->kpctl_fd, disable_str, strlen(disable_str));
 }
 
-void perf_context_show_values(struct perf_context *pctx, FILE *file)
+void perf_context_show_events(struct perf_context *pctx, FILE *file)
 {
-       for (int i = 0; i < pctx->event_count; i++) {
-               size_t nvalues;
-               struct perf_eventsel *sel = &pctx->events[i].sel;
-               uint64_t *values = perf_get_event_values(pctx->perf_fd,
-                                                                                                pctx->events[i].ped,
-                                                                                                &nvalues);
+       struct perf_eventsel *sel;
 
-               fprintf(file, "Event: %s, final code %p%s, trigger count %d\n\t",
+       for (int i = 0; i < pctx->event_count; i++) {
+               sel = &pctx->events[i].sel;
+               fprintf(file, "Event: %s, final code %p%s, trigger count %d\n",
                        sel->fq_str, sel->ev.event,
                        perfmon_is_fixed_event(&sel->ev) ? " (fixed)" : "",
                        sel->ev.trigger_count);
-               for (size_t j = 0; j < nvalues; j++)
-                       fprintf(file, "%lu ", values[j]);
-               fprintf(file, "\n");
-
-               free(values);
        }
 }
 
index 79ec17c..ef67083 100644 (file)
@@ -68,7 +68,7 @@ void perf_stop_events(struct perf_context *pctx);
 void perf_start_sampling(struct perf_context *pctx);
 void perf_stop_sampling(struct perf_context *pctx);
 uint64_t perf_get_event_count(struct perf_context *pctx, unsigned int idx);
-void perf_context_show_values(struct perf_context *pctx, FILE *file);
+void perf_context_show_events(struct perf_context *pctx, FILE *file);
 void perf_show_events(const char *rx, FILE *file);
 void perf_convert_trace_data(struct perfconv_context *cctx, const char *input,
                                                         FILE *outfile);