3 # cpusets Create/remove cpusets
5 # chkconfig: 12345 01 99
6 # description: Creates/Removes all cpu sets configured to \
13 . /etc/sysconfig/system
15 if [ "${CPUSETS:-no}" = "no" ]; then
23 # Source function library.
24 . /etc/rc.d/init.d/functions
26 if is_yes "${CPUSETS}" && ! grep -q "/dev/cpuset" /proc/mounts ; then
27 nls "ERROR: CPUSET support not enabled in kernel or /dev/cpuset not mounted" >&2
33 local CPUS MEMS CPU_EXCLUSIVE MEM_EXCLUSIVE NOTIFY_ON_RELEASE TASKS
35 . /etc/sysconfig/cpusets/cpuset-$i
37 if mkdir /dev/cpuset/"$NAME" >/dev/null 2>&1 ; then
38 [ -n "$CPUS" ] && echo "$CPUS" >/dev/cpuset/"$NAME"/cpus
39 [ -n "$MEMS" ] && echo "$MEMS" >/dev/cpuset/"$NAME"/mems
40 [ -n "$CPU_EXCLUSIVE" ] && echo "$CPU_EXCLUSIVE" >/dev/cpuset/"$NAME"/cpu_exclusive
41 [ -n "$MEM_EXCLUSIVE" ] && echo "$MEM_EXCLUSIVE" >/dev/cpuset/"$NAME"/mem_exclusive
42 [ -n "$NOTIFY_ON_RELEASE" ] && echo "$NOTIFY_ON_RELEASE" >/dev/cpuset/"$NAME"/notify_on_release
43 [ -n "$VIRTUALIZE" ] && echo "$VIRTUALIZE" >/dev/cpuset/"$NAME"/virtualize
44 [ -n "$TASKS" ] && echo "$TASKS" >/dev/cpuset/"$NAME"/tasks
52 local CPUS MEMS CPU_EXCLUSIVE MEM_EXCLUSIVE NOTIFY_ON_RELEASE TASKS
54 . /etc/sysconfig/cpusets/cpuset-$i
56 # This MUST be rmdir (not rm -rf)
57 if rmdir /dev/cpuset/"$NAME" >/dev/null 2>&1 ; then
66 if [ $(cat /dev/cpuset/$1/tasks 2>/dev/null | wc -c) -eq 0 ] ; then
76 rc_splash "bootcpusets start"
78 for i in $cpusets_boot; do
79 show "$(nls -n "Creating cpuset %s" "$i")"
80 if cpuset_create $i ; then
87 touch /var/lock/subsys/cpusets
91 for i in $cpusets_boot; do
92 show "$(nls -n "Removing cpuset %s" "$i")"
94 if cpuset_empty $i; then
95 if cpuset_remove $i; then
105 rm -f /var/lock/subsys/cpusets
108 # Get list of config files
109 # ignores editor backup files and rpm blackups
113 for a in /etc/sysconfig/cpusets/$match; do
115 *rpmorig|*rpmnew|*rpmsave|*~|*.orig)
125 cpuset_files="$(cpuset_configs 'cpuset-*')"
127 for i in $cpuset_files; do
128 ONBOOT=""; . "$i" 2>/dev/null
129 is_yes "$ONBOOT" && echo "${i##*/cpuset-}"
133 # See how we were called.
142 nls "Configured cpusets:"
145 nls "Currently empty cpusets:"
146 for i in $(ls /dev/cpuset 2>/dev/null); do
147 if [ -d /dev/cpuset/$i ]; then
148 cpuset_empty $i && echo $i
152 nls "Currently active cpusets:"
153 for i in $(ls /dev/cpuset 2>/dev/null); do
154 if [ -d /dev/cpuset/$i ]; then
155 cpuset_empty $i || echo $i
165 msg_usage "$0 {start|stop|restart|status}"