lkml.org 
[lkml]   [2015]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH v2 0/2] perf tools: Don't set inherit bit for system wide evsel
Date
Previous version can be found from [1].

To make bpf_perf_event_output() and bpf_perf_event_read() easier to be
used, these two patches set inherit to 0 for system wide evsels.
After applying them, users are possible to pass system wide events to
BPF programs in following command, and don't need to consider the
setting of inherit:

# perf record -a -e evt=cycles -e ./test__map.c/maps.pmu_map.event=evt/ ...

Patch 1/2 set evsel->system_wide for system wide target. I have checked
in current evlist.c and evsel.c. The only behavior change I found is in
evlist.c:

/*
* The system_wide flag causes a selected event to be opened
* always without a pid. Consequently it will never get a
* POLLHUP, but it is used for tracking in combination with
* other events, so it should not need to be polled anyway.
* Therefore don't add it for polling.
*/
if (!evsel->system_wide &&
__perf_evlist__add_pollfd(evlist, fd, idx) < 0) {
perf_evlist__mmap_put(evlist, idx);
return -1;
}

With patch 1/2, __perf_evlist__add_pollfd() won't be called. From the
comment I pasted this modification looks harmless.

[1] http://lkml.kernel.org/r/1445597029-133332-1-git-send-email-wangnan0@huawei.com

Wang Nan (2):
perf tools: Set evsel->system_wide field for global system wide
recording
perf tools: Don't set inherit bit for system wide evsel

tools/perf/util/evsel.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--
1.8.3.4



\
 
 \ /
  Last update: 2015-10-26 13:01    [W:0.036 / U:0.144 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site