Messages in this thread | | | From | 禹舟键 <> | Date | Mon, 10 Jun 2019 15:45:40 +0800 | Subject | Re: [PATCH] perf record: Add support to collect callchains from kernel or user space only. |
| |
Hi Arnaldo, Jirka
> perf_event_attr.exclude_callchain_kernel to 0
I don't think we should set 0 for the desired callchins, because we will set exclude_callchain_user to 1 if perf_evsel is function event.
void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts, struct callchain_param *callchain) { ... if (perf_evsel__is_function_event(evsel)) evsel->attr.exclude_callchain_user = 1;
if (callchain && callchain->enabled && !evsel->no_aux_samples) perf_evsel__config_callchain(evsel, opts, callchain); }
If we set exclude_callchain_user to 0 , it will catch user callchain for function_event. So, it will be best to just set the exclude_callchain_xxx to 1.
> So that the user don't try using:
> perf record --user-callchains --kernel-callchains
> expecting to get both user and kernel callchains and instead gets > nothing.
I will add a note in the doc.
Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> 于2019年6月7日周五 上午2:15写道: > > Em Thu, Jun 06, 2019 at 04:46:14PM +0200, Jiri Olsa escreveu: > > On Thu, Jun 06, 2019 at 11:26:44AM -0300, Arnaldo Carvalho de Melo wrote: > > > So that the user don't try using: > > > > pref record --user-callchains --kernel-callchains > > > > expecting to get both user and kernel callchains and instead gets > > > nothing. > > > good catch.. we should add the logic to keep both (default) > > in this case.. so do nothing ;-) > > Yeah, not using both or using both should amount to the same behaviour. > > Can be done with a patch on top of what I have in my tree now. > > - Arnaldo
| |