On 26/10/15 11:08, Wangnan (F) wrote: > > > 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 <a...@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.gq17...@twins.programming.kicks-ass.net >>>>> >>>>> [2] >>>>> http://lkml.kernel.org/r/1445559014-4667-1-git-send-email-...@kernel.org >>>>> >>>>> Signed-off-by: Wang Nan <wangn...@huawei.com> >>>>> Cc: Arnaldo Carvalho de Melo <a...@redhat.com> >>>>> Cc: Alexei Starovoitov <a...@plumgrid.com> >>>>> Cc: Peter Zijlstra <a.p.zijls...@chello.nl> >>>>> Cc: Li Zefan <lize...@huawei.com> >>>>> Cc: pi3or...@163.com >>>>> Link: >>>>> http://lkml.kernel.org/n/ebpf-0tgilipxoo6fiebcxu3ft...@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.
evsel->system_wide is for mixing evsels that aren't system-wide with ones that are. It might work to set it for all system-wide evsels but you will have to check the code and test it, because that would be using it in a new way that has never been tested. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/