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/

Reply via email to