perf: Support only inheriting events if cloned with CLONE_THREAD

Adds bit perf_event_attr::inherit_thread, to restricting inheriting
events only if the child was cloned with CLONE_THREAD.

This option supports the case where an event is supposed to be
process-wide only (including subthreads), but should not propagate
beyond the current process's shared environment.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Marco Elver <elver@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/lkml/YBvj6eJR%2FDY2TsEB@hirez.programming.kicks-ass.net/
This commit is contained in:
Marco Elver
2021-04-08 12:35:58 +02:00
committed by Peter Zijlstra
parent 47f661eca0
commit 2b26f0aa00
4 changed files with 20 additions and 11 deletions

View File

@@ -389,7 +389,8 @@ struct perf_event_attr {
cgroup : 1, /* include cgroup events */
text_poke : 1, /* include text poke events */
build_id : 1, /* use build id in mmap2 events */
__reserved_1 : 29;
inherit_thread : 1, /* children only inherit if cloned with CLONE_THREAD */
__reserved_1 : 28;
union {
__u32 wakeup_events; /* wakeup every n events */