Re: [RFC PATCH 2/2] perf: Filter events based on perf-namespace

From: Aravinda Prasad
Date: Tue Jul 12 2016 - 12:20:11 EST




On Tuesday 12 July 2016 06:34 PM, Peter Zijlstra wrote:
> On Tue, Jul 12, 2016 at 03:41:42PM +0300, Nikolay Borisov wrote:
>
>> Namespaces and cgroups are completely orthogonal to one another.
>
> Then how do you specify what your new 'root' is? Surely you must first
> create a cgroup and then confine yourself to that?

No need to create cgroup and confine processes to that cgroup. The below
check during event filtering will take care:

+ if (cpuctx->perf_ns != event->perf_ns)
+ return false;

event->perf_ns is set during perf_event_alloc():

+ if (current->nsproxy->perf_ns != &init_perf_ns) {
+ /*
+ * If we are called from our own perf namespace, set
+ * event->perf_ns
+ */
+ event->perf_ns = current->nsproxy->perf_ns;
+ [...]
+ }

>
>> Also in the v1 of cgroups it's possible to have a process member of
>> more than 1 cgroup.
>
> Yeah, so? We only care about the perf controller obviously.
>

--
Regards,
Aravinda