[Devel] [PATCH rh7 0/6] Rework devtmpfs virtualization
Vladimir Davydov
vdavydov at parallels.com
Thu Jul 23 08:09:57 PDT 2015
Currently, we implement full-featured devtmpfs virtualization for VE:
when a deivice is created in a VE "namespace", we send a signal to
kdevtmpfs to create the devnode on devtmpfs mount corresponding to the
VE. This seems to be over-complicated: all this work can be done from
userspace, because we only have a hardcoded list of devices created
exclusively for VE on container start. Those are tty-related stuff and
mem devices, and we only need the latter to create devtmpfs nodes.
Moreover, it is buggy: ve_stop_ns, which destroys VE devtmpfs mount can
be called before a VE tty device is unregistered, resulting in a KP:
https://jira.sw.ru/browse/PSBM-35077
This patch therefore simplifies it. It makes the kernel only provide a
single empty tmpfs mount per VE, which appears on an attempt to mount
devtmpfs from inside a VE. The content of the fs is to be filled by the
userspace on container start, which will be done in the scope of
https://jira.sw.ru/browse/PSBM-35146
Vladimir Davydov (6):
Revert "ve/devtmpfs: Create required devices on container startup"
Revert "ve/devtmpfs: pass proper options string"
Revert "devtmpfs: containerize it with new obj ns operation"
Revert "fs: add data pointer to mount_ns()"
Revert "devtmpfs: per-VE mounts introduced"
devtmpfs: lightweight virtualization
drivers/base/devtmpfs.c | 127 +++++++++++++++++++++++----------------------
drivers/char/mem.c | 20 -------
fs/binfmt_misc.c | 2 +-
fs/nfsd/nfsctl.c | 2 +-
fs/super.c | 4 +-
fs/sysfs/ve.c | 9 ----
include/linux/device.h | 4 --
include/linux/fs.h | 2 +-
include/linux/kobject_ns.h | 2 -
include/linux/ve.h | 4 +-
ipc/mqueue.c | 2 +-
kernel/ve/ve.c | 68 ++----------------------
net/sunrpc/rpc_pipe.c | 2 +-
13 files changed, 78 insertions(+), 170 deletions(-)
--
2.1.4
More information about the Devel
mailing list