[RFC PATCH v2 0/2] perf tools: Don't set inherit bit for system wide evsel

From: Wang Nan
Date: Mon Oct 26 2015 - 07:42:30 EST

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

* 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@xxxxxxxxxx

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

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


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/