On Thu, Mar 20, 2008 at 12:11:39PM -0400, Daniel Veillard wrote: > On Wed, Mar 19, 2008 at 11:14:59PM -0700, Dave Leskovec wrote: > > This patch adds the lxc_driver source files. > [...] > > +static int lxcCheckContainerSupport( void ) > > +{ > > + int rc = 0; > > + int flags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWUSER| > > + CLONE_NEWIPC|SIGCHLD; > > + int cpid; > > + char *childStack; > > + char *stack; > > + int childStatus; > > + > > + stack = malloc(getpagesize() * 4); > > + if(!stack) { > > + DEBUG0("Unable to allocate stack"); > > + rc = -1; > > + goto check_complete; > > + } > > + > > + childStack = stack + (getpagesize() * 4); > > + > > + cpid = clone(lxcDummyChild, childStack, flags, NULL); > > + if ((0 > cpid) && (EINVAL == errno)) { > > + DEBUG0("clone call returned EINVAL, container support is not enabled"); > > + rc = -1; > > haha, I would have expected a checking of /proc or something similar. > That test could still fail, say if the kernel started to disagree on > stack of only 4 pages for example. If there was insufficient mem it would return ENOMEM. The EINVAL errors are all related to invalid flags, so this is a reasonable check. Dan. -- |: Red Hat, Engineering, Boston -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list