we save object owner on the object. So if you change the container,OpenVZ assumes that tasks can't move between task-groups for a single reason:
user shouldn't be able to escape from the container.
But this have no implication on the design/implementation.
Doesnt the ability to move tasks between groups dynamically affect
(atleast) memory controller design (in giving up ownership etc)?
Also if we need to support this movement, we need to have someit can be done by the same syscall or whatever which sets your
corresponding system call/file-system interface which supports this move operation.
this works mostly for CPU only. And OpenVZ design allows to change CPUBTW, do you see any practical use cases for tasks jumping between resource-containers?
The use cases I have heard of which would benefit such a feature is
(say) for database threads which want to change their "resource
affinity" status depending on which customer query they are currently handling. If they are handling a query for a "important" customer, they will want affinied
to a high bandwidth resource container and later if they start handling
a less important query they will want to give up this affinity and
instead move to a low-bandwidth container.