Re: [RFC PATCH] perf: Container-aware tracing support

Aravinda Prasad
2015-07-17T12:21:05Z

On Friday 17 July 2015 03:49 PM, Peter Zijlstra wrote:
> On Wed, Jul 15, 2015 at 09:51:52PM +0530, Aravinda Prasad wrote:
>>>> + } else if (task_active_pid_ns(current) != &init_pid_ns) {
>>>
>>> Why the pid namespace?
>>
>> This comes from my understanding of container -- having at least a
>> separate PID namespace with processes inside a container grouped into a
>> single perf_event cgroups subsystem.
>>
>> I know there are other ways to define a container, however, I thought I
>> start with the above one.
>
> Right, but you should at least mention this, preferably in a comment.

Yes. I should have done that.

>
>>>
>>>> + /* Don't set event->cgrp if task belongs to root cgroup */
>>>> + if (task_css_is_root(current, perf_event_cgrp_id))
>>>> + return ret;
>>>
>>> So if you have the root perf_cgroup inside your container you can
>>> escape?
>>
>> If we have root perf_cgroup inside the container then even if we set
>> event->cgrp we will be including all processes in the system.
>
> Yes, that's what I said. Why does that make sense?

We assume that processes are grouped into a single perf_event subsystem.
If we have root perf_cgroup, from our assumption, implies we are not
invoked from a container context. However, not sure if this assumption
is right.

>

--
Regards,
Aravinda