perf parse: Refactor 'struct perf_evsel_config_term'
The struct perf_evsel_config_term::val is a union which contains fields 'callgraph', 'drv_cfg' and 'branch' as string pointers. This leads to the complex code logic for handling every type's string separately, and it's hard to release string as a general way. This patch refactors the structure to add a common field 'str' in the 'val' union as string pointer and remove the other three fields 'callgraph', 'drv_cfg' and 'branch'. Without passing field name, the patch simplifies the string handling with macro ADD_CONFIG_TERM_STR() for string pointer assignment. This patch fixes multiple warnings of line over 80 characters detected by checkpatch tool. Signed-off-by: Leo Yan <leo.yan@linaro.org> Reviewed-by: Andi Kleen <ak@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Cc: linux-arm-kernel@lists.infradead.org Link: http://lore.kernel.org/lkml/20200117055251.24058-1-leo.yan@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
0cc4bd8f70
commit
e884602b57
@@ -808,12 +808,12 @@ static void apply_config_terms(struct evsel *evsel,
|
||||
perf_evsel__reset_sample_bit(evsel, TIME);
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_CALLGRAPH:
|
||||
callgraph_buf = term->val.callgraph;
|
||||
callgraph_buf = term->val.str;
|
||||
break;
|
||||
case PERF_EVSEL__CONFIG_TERM_BRANCH:
|
||||
if (term->val.branch && strcmp(term->val.branch, "no")) {
|
||||
if (term->val.str && strcmp(term->val.str, "no")) {
|
||||
perf_evsel__set_sample_bit(evsel, BRANCH_STACK);
|
||||
parse_branch_str(term->val.branch,
|
||||
parse_branch_str(term->val.str,
|
||||
&attr->branch_sample_type);
|
||||
} else
|
||||
perf_evsel__reset_sample_bit(evsel, BRANCH_STACK);
|
||||
|
Reference in New Issue
Block a user