Re: [ckrm-tech] [RFC] Resource Management - Infrastructure choices

From: David Rientjes
Date: Wed Nov 01 2006 - 04:54:09 EST


On Wed, 1 Nov 2006, Pavel Emelianov wrote:

> > - Interaction of resource controllers, containers and cpusets
> > - Should we support, for instance, creation of resource
> > groups/containers under a cpuset?
> > - Should we have different groupings for different resources?
>
> I propose to discuss this question as this is the most important
> now from my point of view.
>
> I believe this can be done, but can't imagine how to use this...
>

I think cpusets, as abstracted away from containers by Paul Menage, simply
become a client of the container configfs. Cpusets would become more of a
NUMA-type controller by default.

Different groupings for different resources was already discussed. If we
use the approach of a single-level "hierarchy" for process containers and
then attach them each to a "node" of a controller, then the groupings have
been achieved. It's possible to change the network controller of a
container or move processes from container to container easily through the
filesystem.

> > - Support movement of all threads of a process from one group
> > to another atomically?
>
> I propose such a solution: if a user asks to move /proc/<pid>
> then move the whole task with threads.
> If user asks to move /proc/<pid>/task/<tid> then move just
> a single thread.
>
> What do you think?

This seems to use my proposal of using procfs as an abstraction of process
containers. I haven't looked at the implementation details, but it seems
like the most appropriate place given what it currently supports.
Naturally it should be an atomic move but I don't think it's the most
important detail in terms of efficiency because moving threads should not
be such a frequent occurrence anyway. This begs the question about how
forks are handled for processes with regard to the various controllers
that could be implemented and whether they should all be decendants of the
parent container by default or have the option of spawning a new
controller all together. This would be an attribute of controllers and
not containers, however.

David
-
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/