if grep -q "/dev/cgroup" /proc/mounts ; then
CGDIR="/dev/cgroup"
CSUBSYS="cpuset."
-else
+elif grep -q "/dev/cpuset" /proc/mounts ; then
CGDIR="/dev/cpuset"
CSUBSYS=""
fi
-if is_yes "${CPUSETS}" && [ -z "${CGDIR}" ]; then
- nls "ERROR: CGROUP/CPUSET support not enabled in kernel or /dev/cpuset or /dev/cgroup not mounted" >&2
- exit 1
-fi
+cpuset_mount() {
+ [ -n "${CGDIR}" ] && return
+
+ if grep -q cgroup /proc/filesystems 2>/dev/null ; then
+ if ! grep -q "^[^#].*cgroup" /etc/fstab 2>/dev/null ; then
+ # creating is more convenient than artificial conflict with older udev
+ mkdir -p /dev/cgroup
+ modprobe -s blk-cgroup 2>/dev/null
+ # mount w/o options enables all available cgroup subsystems
+ mount -n -t cgroup none /dev/cgroup
+ fi
+ elif grep -q cpuset /proc/filesystems 2>/dev/null ; then
+ if ! grep -q "^[^#].*cpuset" /etc/fstab 2>/dev/null ; then
+ mount -n -t cpuset none /dev/cpuset
+ fi
+ else
+ nls "ERROR: CGROUP/CPUSET support not enabled in kernel" >&2
+ return 1
+ fi
+}
cpuset_create() {
local CPUS MEMS CPU_EXCLUSIVE MEM_EXCLUSIVE NOTIFY_ON_RELEASE TASKS
# See how we were called.
case "$1" in
start)
+ cpuset_mount
start
;;
stop)
;;
restart)
stop
+ cpuset_mount
start
;;
*)
/sbin/blogd
fi
- # cgroup/cpuset support
- if grep -q cgroup /proc/filesystems 2>/dev/null ; then
- if ! grep -q "^[^#].*cgroup" /etc/fstab 2>/dev/null ; then
- # creating is more convenient than artificial conflict with older udev
- mkdir -p /dev/cgroup
- # mount w/o options enables all available cgroup subsystems
- modprobe -s blk-cgroup 2> /dev/null
- mount -n -t cgroup none /dev/cgroup
- fi
- elif grep -q cpuset /proc/filesystems 2>/dev/null ; then
- if ! grep -q "^[^#].*cpuset" /etc/fstab 2>/dev/null ; then
- mount -n -t cpuset none /dev/cpuset
- fi
- fi
-
# Configure Linux kernel (initial configuration, some required modules still
# may be missing).
sysctl -e -p /etc/sysctl.conf > /dev/null 2>&1
mount -f -t selinuxfs selinuxfs /selinux
fi
- if is_fsmounted cgroup /dev/cgroup; then
- mount -f -t cgroup none /dev/cgroup
- elif is_fsmounted cpuset /dev/cpuset; then
- mount -f -t cpuset none /dev/cpuset
- fi
-
emit --no-wait root-filesystem
emit --no-wait virtual-filesystems