From b707b6248257d68c9c355c882514e3f37cf7a630 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Thu, 10 Feb 2011 11:01:48 +0000 Subject: [PATCH] - moved cpuset/cgroup mounting code into cpuset startup script for seamless interoperability with libcgroup svn-id: @12128 --- rc.d/init.d/cpusets | 28 +++++++++++++++++++++++----- rc.d/rc.sysinit | 21 --------------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/rc.d/init.d/cpusets b/rc.d/init.d/cpusets index 2a2ed48c..944173d0 100755 --- a/rc.d/init.d/cpusets +++ b/rc.d/init.d/cpusets @@ -26,15 +26,31 @@ fi 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 @@ -137,6 +153,7 @@ cpusets_boot=$( # See how we were called. case "$1" in start) + cpuset_mount start ;; stop) @@ -163,6 +180,7 @@ case "$1" in ;; restart) stop + cpuset_mount start ;; *) diff --git a/rc.d/rc.sysinit b/rc.d/rc.sysinit index 4a7b960b..0703c912 100755 --- a/rc.d/rc.sysinit +++ b/rc.d/rc.sysinit @@ -270,21 +270,6 @@ if ! is_yes "$VSERVER"; then /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 @@ -484,12 +469,6 @@ if ! is_yes "$VSERVER"; then 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 -- 2.44.0