[libvirt] [PATCH] LXC: create directory /dev/shm automatically

Daniel P. Berrange berrange at redhat.com
Tue Jan 29 10:25:40 UTC 2013


On Tue, Jan 29, 2013 at 08:52:45AM +0900, Kamezawa Hiroyuki wrote:
> (2013/01/28 19:36), Daniel P. Berrange wrote:
> >On Mon, Jan 28, 2013 at 02:37:11PM +0800, Gao feng wrote:
> >>Now we mount /dev as tmpfs and haven't created directory
> >>/dev/shm,so the glibc api such as shm_open/sem_open will
> >>create files under dir /dev.(since /dev is mounted as tmpfs)
> >>
> >>Through these api still useable in container,but this cause
> >>directory /dev looks a little chaos.
> >>
> >>This patch create directory /dev/shm automatically,the files
> >>created by shm_open/sem_open will stay in this directroy.
> >>
> >>Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
> >>---
> >>  src/lxc/lxc_container.c | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >>diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> >>index 497539c..5150564 100644
> >>--- a/src/lxc/lxc_container.c
> >>+++ b/src/lxc/lxc_container.c
> >>@@ -586,6 +586,13 @@ static int lxcContainerMountBasicFS(bool pivotRoot,
> >>                                   "devfs", "/dev", "tmpfs", opts);
> >>              goto cleanup;
> >>          }
> >>+
> >>+        VIR_DEBUG("create directory /dev/shm for POSIX shared memory and named semphore");
> >>+        if (virFileMakePath("/dev/shm") < 0) {
> >>+            virReportSystemError(errno, "%s",
> >>+                                 _("Failed to mkdir /dev/shm"));
> >>+            goto cleanup;
> >>+        }
> >>      }
> >>
> >>      rc = 0;
> >
> >I we probably want to mount a separate tmpfs on /dev/shm really, so we can
> >do resource limits on /dev and /dev/shm separately.
> 
> I agree.
> BTW, if the user wants to tune limit of /dev/shm size, he need to add
> 
> <filesystem type='ram'>
>   <source usage='XXXXX'/>
>   <target dir='/dev/shm'/>
> </filesystem>

Oh true, I forgot we added that. That is fine.

> How do you think suitable limit for default should be ?
> half of memory limit of a container ?

I think /dev can just be limited to say 1 MB - it should only ever contain
device nodes which have little space requirement. If someone actually wants
to be using SHM, then they shuld explicitly configure /dev/shm in the XML
with a suitable limit.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list