Re: [-mm] Add an owner to the mm_struct (v8)

From: Paul Menage
Date: Sat Apr 05 2008 - 13:23:59 EST


On Sat, Apr 5, 2008 at 7:47 AM, Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:
>
> Repeating my question earlier
>
> Can we delay setting task->cgroups = &init_css_set for the group_leader, until
> all threads have exited?

Potentially, yes. It also might make more sense to move the
exit_cgroup() for all threads to a later point rather than special
case delayed group leaders.

> If the user is unable to remove a cgroup node, it will
> be due a valid reason, the group_leader is still around, since the threads are
> still around. The user in that case should wait for notify_on_release.
>
> >
> > To me, it seems that setting up a *virtual address space* cgroup
> > hierarchy and then putting half your threads in one group and half in
> > the another is asking for trouble. We need to not break in that
> > situation, but I'm not sure it's a case to optimize for.
>
> That could potentially happen, if the virtual address space cgroup and cpu
> control cgroup were bound together in the same hierarchy by the sysadmin.

Yes, I agree it could potentially happen. But it seems like a strange
thing to do if you're planning to be not have the same groupings for
cpu and va.

>
> I measured the overhead of removing the delay_group_leader optimization and
> found a 4% impact on throughput (with volanomark, that is one of the
> multi-threaded benchmarks I know of).

Interesting, I thought (although I've never actually looked at the
code) that volanomark was more of a scheduling benchmark than a
process start/exit benchmark. How frequently does it have processes
(not threads) exiting?

How many runs was that over? Ingo's recently posted volanomark tests
against -rc7 showed ~3% random variation between runs.

Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/