[Devel] Re: [PATCH RFC] cr: pts: detect use of multiple devpts mounts in container
Matt Helsley
matthltc at us.ibm.com
Thu Apr 29 10:41:06 PDT 2010
On Thu, Apr 29, 2010 at 10:28:48AM -0500, Serge E. Hallyn wrote:
> We don't support multiple devpts mounts in a container. So
> bail on checkpoint if a container has them. This will cause
> checkpoint to fail of a container which still has a pty from
> parent container in use.
>
> Note one issue with this is the register_checkpoint_obj(&&ckpt_obj_ptsns_ops)
> done from module_init(). We either need to add a matching unregister,
That's a rather significant problem. We need a matching
unregister_checkpoint_obj() and we need to be sure that none of the functions
specified in the ckpt_obj_ops are executing when the module is finally removed.
Is there a way to do that without holding any locks during ckpt_obj_op
calls? I've been thinking about how to do it with RCU:
struct ckpt_obj_ops *ops;
rcu_read_lock();
ops = ckpt_obj_ops[type];
get_module(ops->owner); /* try_module_get() */
rcu_read_unlock();
ops->op(...);
put_module(ops->owner);
That should also ensure that the module won't be removed until the operation
is complete. However it seems quite absurd to grab a reference to a module
just to use its grab and drop ops. We'll probably spend more time in the
module code...
Regardless, the register side requires a spinlock to protect writes to the
ckpt_obj_ops array (inside register_checkpoint_obj()).
Cheers,
-Matt
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list