On Tue, Dec 8, 2009 at 7:04 PM, Jan Safranek <[email protected]> wrote: > libcgroup now provides some tools, which can be used in the init script > instead of bash code. >
I like this patch! > Signed-off-by: Jan Safranek <[email protected]> pending some testing Acked-by: Dhaval Giani <[email protected]> > --- > > scripts/init.d/cgconfig.in | 55 > ++++++++++++++++++++++---------------------- > 1 files changed, 27 insertions(+), 28 deletions(-) > > diff --git a/scripts/init.d/cgconfig.in b/scripts/init.d/cgconfig.in > index 4c3c2e8..d5649eb 100644 > --- a/scripts/init.d/cgconfig.in > +++ b/scripts/init.d/cgconfig.in > @@ -87,36 +87,35 @@ create_default_groups() { > then > defaultcgroup=sysdefault/ > fi > + > # > - # Create a default class for tasks to return back to > + # Find all mounted subsystems and create comma-separated list > + # of controllers. > # > - parse_mounts > - for i in `seq 1 $maxindex` > - do > - # > - # Ignore if directory already exists > - # > - mkdir ${MOUNTPOINT[$i]}/$defaultcgroup 2> /dev/null > - chmod a+rw ${MOUNTPOINT[$i]}/$defaultcgroup/tasks > - # > - # special rule for cpusets > - # > - echo ${MOUNTOPTS[$i]} | grep -q -w cpuset > - if [ $? -eq 0 ] > - then > - cat ${MOUNTPOINT[$i]}/cpuset.cpus > \ > - ${MOUNTPOINT[$i]}/$defaultcgroup/cpuset.cpus > - cat ${MOUNTPOINT[$i]}/cpuset.mems > \ > - ${MOUNTPOINT[$i]}/$defaultcgroup/cpuset.mems > - fi > - # > - # classify everything to default cgroup > - # > - for j in `ps --no-headers -eL o tid` > - do > - echo $j > ${MOUNTPOINT[$i]}/$defaultcgroup/tasks 2>/dev/null > - done > - done > + controllers=`lssubsys 2>/dev/null | tr '\n' ',' | sed s/.$//` > + > + # > + # Create the default group, ignore errors when the default group > + # already exists. > + # > + cgcreate -g $controllers:$defaultcgroup 2>/dev/null > + > + # > + # special rule for cpusets > + # > + if echo $controllers | grep -q -w cpuset; then > + cpus=`cgget -nv -r cpuset.cpus /` > + cgset -r cpuset.cpus=$cpus $defaultcgroup > + mems=`cgget -nv -r cpuset.mems /` > + cgset -r cpuset.mems=$mems $defaultcgroup > + fi > + > + # > + # Classify everything to default cgroup. Ignore errors, some > processes > + # may exit after ps is run and before cgclassify moves them. > + # > + cgclassify -g $controllers:$defaultcgroup `ps --no-headers -eL o > tid` \ > + 2>/dev/null || : > } > > start() { > > > ------------------------------------------------------------------------------ > Return on Information: > Google Enterprise Search pays you back > Get the facts. > http://p.sf.net/sfu/google-dev2dev > _______________________________________________ > Libcg-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/libcg-devel > -- Pablo Picasso - "Computers are useless. They can only give you answers." - http://www.brainyquote.com/quotes/authors/p/pablo_picasso.html ------------------------------------------------------------------------------ Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev _______________________________________________ Libcg-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libcg-devel
