forked from luck/tmp_suning_uos_patched
perf: cs-etm: Optimize option setup for CPU-wide sessions
Call function cs_etm_set_option() once with all relevant options set rather than multiple times to avoid going through the list of CPU more than once. Suggested-by: Suzuki K Poulose <suzuki.poulose@arm.com> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/20190611204528.20093-1-mathieu.poirier@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
010e3e8fc1
commit
374d910f87
|
@ -162,20 +162,19 @@ static int cs_etm_set_option(struct auxtrace_record *itr,
|
|||
!cpu_map__has(online_cpus, i))
|
||||
continue;
|
||||
|
||||
switch (option) {
|
||||
case ETM_OPT_CTXTID:
|
||||
if (option & ETM_OPT_CTXTID) {
|
||||
err = cs_etm_set_context_id(itr, evsel, i);
|
||||
if (err)
|
||||
goto out;
|
||||
break;
|
||||
case ETM_OPT_TS:
|
||||
}
|
||||
if (option & ETM_OPT_TS) {
|
||||
err = cs_etm_set_timestamp(itr, evsel, i);
|
||||
if (err)
|
||||
goto out;
|
||||
break;
|
||||
default:
|
||||
goto out;
|
||||
}
|
||||
if (option & ~(ETM_OPT_CTXTID | ETM_OPT_TS))
|
||||
/* Nothing else is currently supported */
|
||||
goto out;
|
||||
}
|
||||
|
||||
err = 0;
|
||||
|
@ -398,11 +397,8 @@ static int cs_etm_recording_options(struct auxtrace_record *itr,
|
|||
if (!cpu_map__empty(cpus)) {
|
||||
perf_evsel__set_sample_bit(cs_etm_evsel, CPU);
|
||||
|
||||
err = cs_etm_set_option(itr, cs_etm_evsel, ETM_OPT_CTXTID);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = cs_etm_set_option(itr, cs_etm_evsel, ETM_OPT_TS);
|
||||
err = cs_etm_set_option(itr, cs_etm_evsel,
|
||||
ETM_OPT_CTXTID | ETM_OPT_TS);
|
||||
if (err)
|
||||
goto out;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user