perf tools: Unset perf_event_attr::freq when period term is set
authorJiri Olsa <jolsa@redhat.com>
Sat, 8 Aug 2015 17:12:10 +0000 (19:12 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 10 Aug 2015 14:58:05 +0000 (11:58 -0300)
We need to unset 'perf_event_attr::freq' bit (default 1) when
'period' term is specified within event definition like:

  -e 'cpu/cpu-cycles,call-graph=fp,time,period=100000'

otherwise it will handle the period value as frequency
(and fail if it crossed the maximum allowed frequency value).

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20150808171210.GC17040@krava.brq.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/evsel.c

index f572f469a30d6f4a5c666bb80286389e6ff19930..a59710f88d8acb91a1567c5d082f2b7d6c3c54ba 100644 (file)
@@ -598,6 +598,7 @@ static void apply_config_terms(struct perf_evsel *evsel)
                switch (term->type) {
                case PERF_EVSEL__CONFIG_TERM_PERIOD:
                        attr->sample_period = term->val.period;
+                       attr->freq = 0;
                        break;
                case PERF_EVSEL__CONFIG_TERM_TIME:
                        if (term->val.time)