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-wangn...@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 -- 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/