Messages in this thread | | | Date | Mon, 26 Oct 2015 17:08:13 +0800 | From | "Wangnan (F)" <> | Subject | Re: [RFC PATCH] perf tools: Don't set inherit bit for system wide evsel |
| |
On 2015/10/24 0:17, Arnaldo Carvalho de Melo wrote: > Em Fri, Oct 23, 2015 at 09:58:20PM +0800, pi3orama escreveu: >> >> 发自我的 iPhone >> >>> 在 2015年10月23日,下午9:51,Arnaldo Carvalho de Melo <acme@kernel.org> 写道: >>> >>> Em Fri, Oct 23, 2015 at 10:43:49AM +0000, Wang Nan escreveu: >>>> Inherit bit is useless for a system wide evsel [1]. Further kernel >>>> improvements are giving more constrain [2] on inherit events. This >>>> patch set inherit bit to 0 to avoid potential constrains. >>>> >>>> [1] http://lkml.kernel.org/r/20151022124142.GQ17308@twins.programming.kicks-ass.net >>>> [2] http://lkml.kernel.org/r/1445559014-4667-1-git-send-email-ast@kernel.org >>>> >>>> Signed-off-by: Wang Nan <wangnan0@huawei.com> >>>> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> >>>> Cc: Alexei Starovoitov <ast@plumgrid.com> >>>> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> >>>> Cc: Li Zefan <lizefan@huawei.com> >>>> Cc: pi3orama@163.com >>>> Link: http://lkml.kernel.org/n/ebpf-0tgilipxoo6fiebcxu3ft866@git.kernel.org >>>> --- >>>> >>>> evsel->system_wide doesn't correct reflect whether this evsel is system >>>> wide or not, so checks pid when invoking perf_event_open, and it is >>>> always correct. >>> Can't we do this at perf_evlist__config() or perf_evsel__config() time? >> perf_evlist_config() is excluded because perf record doesn't use it. > Yeah, we need to make it use it :-\
Its my fault that perf record *does* use perf_evlist__config(), but 'perf stat' doesn't.
> >>> We have record_opts at perf_evsel__config() time and I think we should >>> leave changing the attr at perf_evsel__open() time for feature >>> fallbacks, i.e. something we will only know when trying to use, which is >>> different from this inherit-on-syswide case, that we know far in advance >>> we will not need. >> I tried to set this bit based on evsel->system_wide but it seems not reliable >> as it should be, so I was wondering whether it is designed for other use. I will look >> into this next week.
evsel->system_wide is introduced by commit bf8e8f4b832972c76d64ab2e2837a48397144887 (perf evlist: Add 'system_wide' option), but Adrian only introduced a new field into perf, doesn't really make it active. Until now the only user of it is arch/x86/util/intel-pt.c, but I'm not very sure the reason for IPT to use that field.
If I understand correctly, it should be okay for a normal system wide evsel to have this var set. I'll try another RFC for it.
Thank you.
> Ok, thanks in advance, lemme go back looking at eBPF :-) > > - Arnaldo
| |