On 05/17/2011 03:24 PM, Jan Safranek wrote: > cgconfig service fails when something else mounts cgroup hierarchies during > boot (e.g. systemd). Therefore we should allow cgconfig.conf to have no > 'mount' section -> it's up to admin to ensure that controllers are mounted as > needed. > > Because 'group' section is already optional, with this patch cgconfigparser > will accept empty configuration file. This is probably the best default > config for distros with systemd. This is not the truth if the configuration file is empty and no control group is already mounted cgconfigparser will produce an error: $ cgconfigparser -l /home/varekova/bg/libgc/20110520/libcg/samples/cgconfig.conf Loading configuration file /home/varekova/bg/libgc/20110520/libcg/samples/cgconfig.conf failed Cgroup is not mounted.
This is true only if there is some hierarchy is mounted when cgconfigparser is run on empty file. Ivana > Signed-off-by: Jan Safranek<jsafr...@redhat.com> > --- > > doc/man/cgconfig.conf.5 | 13 +++++++++++-- > src/config.c | 10 ++-------- > 2 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/doc/man/cgconfig.conf.5 b/doc/man/cgconfig.conf.5 > index d57fb44..4a82b95 100644 > --- a/doc/man/cgconfig.conf.5 > +++ b/doc/man/cgconfig.conf.5 > @@ -12,8 +12,8 @@ The file consists of > .I mount > and > .I group > -sections. These sections can be in arbitrary order. Any line starting > -with '#' is considered a comment line and is ignored. > +sections. These sections can be in arbitrary order and both are optional. > +Any line starting with '#' is considered a comment line and is ignored. > .LP > .I mount > section has this form: > @@ -53,6 +53,11 @@ controller shall be mounted. The directory is created > automatically on cgconfig service startup if it does not exist and > is deleted on service shutdown. > .LP > + > +If no > +.I mount > +section is specified, no controllers are mounted. > + > .I group > section has this form: > .RS > @@ -174,6 +179,10 @@ created. If it is enclosed in double quotes `"', it can > contain spaces > and other special characters. > .RE > > +If no > +.I group > +section is specified, no groups are created. > + > .\"********************************************" > .SH EXAMPLES > .LP > diff --git a/src/config.c b/src/config.c > index f1873ea..ee367ef 100644 > --- a/src/config.c > +++ b/src/config.c > @@ -723,19 +723,13 @@ int cgroup_config_load_config(const char *pathname) > mount_enabled = (config_mount_table[0].name[0] != '\0'); > > /* > - * The configuration should have either namespace or mount. > - * Not both and not none. > + * The configuration should have namespace or mount, not both. > */ > - if (namespace_enabled == mount_enabled) { > + if (namespace_enabled&& mount_enabled) { > free(config_cgroup_table); > return ECGMOUNTNAMESPACE; > } > > - /* > - * We do not allow both mount and namespace sections in the > - * same configuration file. So test for that > - */ > - > error = cgroup_config_mount_fs(); > if (error) > goto err_mnt; > > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ > Libcg-devel mailing list > Libcg-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/libcg-devel ------------------------------------------------------------------------------ What Every C/C++ and Fortran developer Should Know! Read this article and learn how Intel has extended the reach of its next-generation tools to help Windows* and Linux* C/C++ and Fortran developers boost performance applications - including clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel