diff options
author | Jan Safranek <jsafrane@redhat.com> | 2009-12-22 09:24:25 +0100 |
---|---|---|
committer | Jan Safranek <jsafrane@redhat.com> | 2009-12-22 09:24:25 +0100 |
commit | 22cffbd5d463ce21205f7539d2c099b5a81295de (patch) | |
tree | 8d6d251d9c68cc98909f4487e3a0cdfa6515bf39 | |
parent | 054e8bb87a19d9a69d6c4ea509a8d2d4cb70aa01 (diff) | |
download | libcg-22cffbd5d463ce21205f7539d2c099b5a81295de.tar.gz libcg-22cffbd5d463ce21205f7539d2c099b5a81295de.tar.xz libcg-22cffbd5d463ce21205f7539d2c099b5a81295de.zip |
Use tools instead of shell scripts
libcgroup now provides some tools, which can be used in the init script
instead of bash code.
Signed-off-by: Jan Safranek <jsafrane@redhat.com>
Acked-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
-rw-r--r-- | 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 e11fdd7..f61a0cd 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() { |