[RFC][PATCH] Make access to taks's nsproxy liter
xemul at openvz.org
Thu Aug 9 00:10:33 PDT 2007
Eric W. Biederman wrote:
> Pavel Emelyanov <xemul at openvz.org> writes:
>> When someone wants to deal with some other taks's namespaces
>> it has to lock the task and then to get the desired namespace
>> if the one exists. This is slow on read-only paths and may be
>> impossible in some cases.
>> E.g. Oleg recently noticed a race between unshare() and the
>> (just sent for review) pid namespaces - when the task notifies
>> the parent it has to know the parent's namespace, but taking
>> the task_lock() is impossible there - the code is under write
>> locked tasklist lock.
>> On the other hand switching the namespace on task (daemonize)
>> and releasing the namespace (after the last task exit) is rather
>> rare operation and we can sacrifice its speed to solve the
>> issues above.
> Looks pretty decent but we need to clearly say what lock
> you have to have to assign to the nsproxy pointer.
no locks - only current is allowed to change its nsproxy!
> In this case it isn't so much of a lock as simply you must
> be the process so I think the code is ok. But it sufficiently
> subtle it probably needs to be spelled out.
More information about the Containers