Fixed vlimit. This program lets us set various per-vserver limits. In
authorMarc Fiuczynski <mef@cs.princeton.edu>
Thu, 2 Jun 2005 19:56:08 +0000 (19:56 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Thu, 2 Jun 2005 19:56:08 +0000 (19:56 +0000)
particular, we can now set nproc limits (aka the vserver equivalent to
CKRM numtasks).  There are other limits that apparently just work, too,
such as resident-set-size, number of open files, etc., that I'll start
playing with, too.

Makefile.in
src/Makefile-files
src/vlimit.c

index 44b4141..1a0afc4 100644 (file)
@@ -35,7 +35,7 @@
 
 
 
-SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) $(src_chbind_SOURCES) $(src_chcontext_SOURCES) $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) $(src_ifspec_SOURCES) $(src_listdevip_SOURCES) $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) $(src_showattr_SOURCES) $(src_showperm_SOURCES) $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) $(src_vfiles_SOURCES) $(src_vkill_SOURCES) $(src_vreboot_SOURCES) $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) $(src_vunify_SOURCES) $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES)
+SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) $(src_chbind_SOURCES) $(src_chcontext_SOURCES) $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) $(src_ifspec_SOURCES) $(src_listdevip_SOURCES) $(src_parserpmdump_SOURCES) $(src_readlink_SOURCES) $(src_rebootmgr_SOURCES) $(src_reducecap_SOURCES) $(src_showattr_SOURCES) $(src_showperm_SOURCES) $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) $(src_vfiles_SOURCES) $(src_vkill_SOURCES) $(src_vlimit_SOURCES) $(src_vreboot_SOURCES) $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) $(src_vunify_SOURCES) $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES)
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -122,7 +122,8 @@ pkglibPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 am__EXEEXT_3 = src/chbind$(EXEEXT) src/chcontext$(EXEEXT) \
        src/rebootmgr$(EXEEXT) src/reducecap$(EXEEXT) src/vdu$(EXEEXT) \
        src/vsh$(EXEEXT) src/vdlimit$(EXEEXT) src/vfiles$(EXEEXT) \
-       src/vkill$(EXEEXT) src/vserver-stat$(EXEEXT)
+       src/vkill$(EXEEXT) src/vserver-stat$(EXEEXT) \
+       src/vlimit$(EXEEXT)
 sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(noinst_PROGRAMS) $(pkglib_PROGRAMS) $(sbin_PROGRAMS)
 am_src_capchroot_OBJECTS = src/capchroot.$(OBJEXT)
@@ -182,6 +183,9 @@ src_vfiles_LDADD = $(LDADD)
 am_src_vkill_OBJECTS = src/src_vkill-vkill.$(OBJEXT)
 src_vkill_OBJECTS = $(am_src_vkill_OBJECTS)
 src_vkill_DEPENDENCIES = lib/libvserver.a
+am_src_vlimit_OBJECTS = src/vlimit.$(OBJEXT)
+src_vlimit_OBJECTS = $(am_src_vlimit_OBJECTS)
+src_vlimit_DEPENDENCIES = lib/libvserver.a
 am_src_vreboot_OBJECTS = src/vreboot.$(OBJEXT)
 src_vreboot_OBJECTS = $(am_src_vreboot_OBJECTS)
 src_vreboot_LDADD = $(LDADD)
@@ -243,7 +247,8 @@ am__depfiles_maybe = depfiles
 @AMDEP_TRUE@   src/$(DEPDIR)/src_vunify-vutil.Po \
 @AMDEP_TRUE@   src/$(DEPDIR)/vbuild.Po src/$(DEPDIR)/vcheck.Po \
 @AMDEP_TRUE@   src/$(DEPDIR)/vdlimit.Po src/$(DEPDIR)/vdu.Po \
-@AMDEP_TRUE@   src/$(DEPDIR)/vfiles.Po src/$(DEPDIR)/vreboot.Po \
+@AMDEP_TRUE@   src/$(DEPDIR)/vfiles.Po src/$(DEPDIR)/vlimit.Po \
+@AMDEP_TRUE@   src/$(DEPDIR)/vreboot.Po \
 @AMDEP_TRUE@   src/$(DEPDIR)/vserver-stat.Po src/$(DEPDIR)/vsh.Po \
 @AMDEP_TRUE@   src/$(DEPDIR)/vutil.Po \
 @AMDEP_TRUE@   tests/$(DEPDIR)/escaperoot.Po \
@@ -270,11 +275,11 @@ SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) \
        $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) \
        $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) \
        $(src_vfiles_SOURCES) $(src_vkill_SOURCES) \
-       $(src_vreboot_SOURCES) $(src_vserver_stat_SOURCES) \
-       $(src_vsh_SOURCES) $(src_vunify_SOURCES) \
-       $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \
-       $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) \
-       $(tests_testopenf_SOURCES)
+       $(src_vlimit_SOURCES) $(src_vreboot_SOURCES) \
+       $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) \
+       $(src_vunify_SOURCES) $(tests_escaperoot_SOURCES) \
+       $(tests_forkbomb_SOURCES) $(tests_testipc_SOURCES) \
+       $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES)
 DIST_SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) \
        $(src_chbind_SOURCES) $(src_chcontext_SOURCES) \
        $(src_fakerunlevel_SOURCES) $(src_filetime_SOURCES) \
@@ -285,11 +290,11 @@ DIST_SOURCES = $(lib_libvserver_a_SOURCES) $(src_capchroot_SOURCES) \
        $(src_vbuild_SOURCES) $(src_vcheck_SOURCES) \
        $(src_vdlimit_SOURCES) $(src_vdu_SOURCES) \
        $(src_vfiles_SOURCES) $(src_vkill_SOURCES) \
-       $(src_vreboot_SOURCES) $(src_vserver_stat_SOURCES) \
-       $(src_vsh_SOURCES) $(src_vunify_SOURCES) \
-       $(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \
-       $(tests_testipc_SOURCES) $(tests_testlimit_SOURCES) \
-       $(tests_testopenf_SOURCES)
+       $(src_vlimit_SOURCES) $(src_vreboot_SOURCES) \
+       $(src_vserver_stat_SOURCES) $(src_vsh_SOURCES) \
+       $(src_vunify_SOURCES) $(tests_escaperoot_SOURCES) \
+       $(tests_forkbomb_SOURCES) $(tests_testipc_SOURCES) \
+       $(tests_testlimit_SOURCES) $(tests_testopenf_SOURCES)
 man8dir = $(mandir)/man8
 NROFF = nroff
 MANS = $(man_MANS)
@@ -493,9 +498,11 @@ src_sbin_PRGS = src/chbind \
                           src/vdlimit \
                           src/vfiles \
                           src/vkill \
-                          src/vserver-stat
+                          src/vserver-stat \
+                          src/vlimit
 
-src_sbin_PRGS_broken = src/vlimit
+
+#src_sbin_PRGS_broken  =  src/vlimit
 src_GENFILES = src/setattr
 src_capchroot_SOURCES = src/capchroot.c
 src_capchroot_LDADD = lib/libvserver.a
@@ -912,6 +919,11 @@ src/src_vkill-vkill.$(OBJEXT): src/$(am__dirstamp) \
 src/vkill$(EXEEXT): $(src_vkill_OBJECTS) $(src_vkill_DEPENDENCIES) src/$(am__dirstamp)
        @rm -f src/vkill$(EXEEXT)
        $(LINK) $(src_vkill_LDFLAGS) $(src_vkill_OBJECTS) $(src_vkill_LDADD) $(LIBS)
+src/vlimit.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
+src/vlimit$(EXEEXT): $(src_vlimit_OBJECTS) $(src_vlimit_DEPENDENCIES) src/$(am__dirstamp)
+       @rm -f src/vlimit$(EXEEXT)
+       $(LINK) $(src_vlimit_LDFLAGS) $(src_vlimit_OBJECTS) $(src_vlimit_LDADD) $(LIBS)
 src/vreboot.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/vreboot$(EXEEXT): $(src_vreboot_OBJECTS) $(src_vreboot_DEPENDENCIES) src/$(am__dirstamp)
@@ -1071,6 +1083,7 @@ mostlyclean-compile:
        -rm -f src/vdlimit.$(OBJEXT)
        -rm -f src/vdu.$(OBJEXT)
        -rm -f src/vfiles.$(OBJEXT)
+       -rm -f src/vlimit.$(OBJEXT)
        -rm -f src/vreboot.$(OBJEXT)
        -rm -f src/vserver-stat.$(OBJEXT)
        -rm -f src/vsh.$(OBJEXT)
@@ -1112,6 +1125,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdlimit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdu.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vfiles.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vlimit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vreboot.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-stat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vsh.Po@am__quote@
@@ -1506,6 +1520,22 @@ src/src_vkill-vkill.obj: src/vkill.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/src_vkill-vkill.obj `if test -f 'src/vkill.c'; then $(CYGPATH_W) 'src/vkill.c'; else $(CYGPATH_W) '$(srcdir)/src/vkill.c'; fi`
 
+src/vlimit.o: src/vlimit.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vlimit.o -MD -MP -MF "src/$(DEPDIR)/vlimit.Tpo" -c -o src/vlimit.o `test -f 'src/vlimit.c' || echo '$(srcdir)/'`src/vlimit.c; \
+@am__fastdepCC_TRUE@   then mv -f "src/$(DEPDIR)/vlimit.Tpo" "src/$(DEPDIR)/vlimit.Po"; else rm -f "src/$(DEPDIR)/vlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/vlimit.c' object='src/vlimit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='src/$(DEPDIR)/vlimit.Po' tmpdepfile='src/$(DEPDIR)/vlimit.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vlimit.o `test -f 'src/vlimit.c' || echo '$(srcdir)/'`src/vlimit.c
+
+src/vlimit.obj: src/vlimit.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vlimit.obj -MD -MP -MF "src/$(DEPDIR)/vlimit.Tpo" -c -o src/vlimit.obj `if test -f 'src/vlimit.c'; then $(CYGPATH_W) 'src/vlimit.c'; else $(CYGPATH_W) '$(srcdir)/src/vlimit.c'; fi`; \
+@am__fastdepCC_TRUE@   then mv -f "src/$(DEPDIR)/vlimit.Tpo" "src/$(DEPDIR)/vlimit.Po"; else rm -f "src/$(DEPDIR)/vlimit.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/vlimit.c' object='src/vlimit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='src/$(DEPDIR)/vlimit.Po' tmpdepfile='src/$(DEPDIR)/vlimit.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/vlimit.obj `if test -f 'src/vlimit.c'; then $(CYGPATH_W) 'src/vlimit.c'; else $(CYGPATH_W) '$(srcdir)/src/vlimit.c'; fi`
+
 src/vreboot.o: src/vreboot.c
 @am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/vreboot.o -MD -MP -MF "src/$(DEPDIR)/vreboot.Tpo" -c -o src/vreboot.o `test -f 'src/vreboot.c' || echo '$(srcdir)/'`src/vreboot.c; \
 @am__fastdepCC_TRUE@   then mv -f "src/$(DEPDIR)/vreboot.Tpo" "src/$(DEPDIR)/vreboot.Po"; else rm -f "src/$(DEPDIR)/vreboot.Tpo"; exit 1; fi
index b31a2ae..695aea8 100644 (file)
@@ -42,14 +42,11 @@ src_sbin_PRGS               =  src/chbind \
                           src/vdu \
                           src/vsh \
                           src/vdlimit \
+                          src/vlimit \
                           src/vfiles \
                           src/vkill \
                           src/vserver-stat
 
-
-src_sbin_PRGS_broken   =  src/vlimit
-
-
 src_GENFILES           =  src/setattr
 
 src_capchroot_SOURCES          =  src/capchroot.c
index 44fe511..6fd955b 100644 (file)
@@ -195,7 +195,7 @@ int main (int argc, char *argv[])
 
       if (set_mask & 1) limits[id].min  = val;
       if (set_mask & 2) limits[id].soft = val;
-      if (set_mask & 4) limits[id].soft = val;
+      if (set_mask & 4) limits[id].hard = val;
 
       lim_mask |= (1<<id);
       set_mask  = 0;