SVN: rc-scripts/trunk/rc.d: init.d/cpusets rc.sysinit

baggins baggins at pld-linux.org
Thu Feb 10 12:01:49 CET 2011


Author: baggins
Date: Thu Feb 10 12:01:48 2011
New Revision: 12128

Modified:
   rc-scripts/trunk/rc.d/init.d/cpusets
   rc-scripts/trunk/rc.d/rc.sysinit
Log:
- moved cpuset/cgroup mounting code into cpuset startup script
  for seamless interoperability with libcgroup


Modified: rc-scripts/trunk/rc.d/init.d/cpusets
==============================================================================
--- rc-scripts/trunk/rc.d/init.d/cpusets	(original)
+++ rc-scripts/trunk/rc.d/init.d/cpusets	Thu Feb 10 12:01:48 2011
@@ -26,15 +26,31 @@
 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 @@
 # See how we were called.
 case "$1" in
   start)
+	cpuset_mount
   	start
 	;;
   stop)
@@ -163,6 +180,7 @@
 	;;
   restart)
 	stop
+	cpuset_mount
 	start
 	;;
   *)

Modified: rc-scripts/trunk/rc.d/rc.sysinit
==============================================================================
--- rc-scripts/trunk/rc.d/rc.sysinit	(original)
+++ rc-scripts/trunk/rc.d/rc.sysinit	Thu Feb 10 12:01:48 2011
@@ -270,21 +270,6 @@
 		/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 @@
 		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
 


More information about the pld-cvs-commit mailing list