1 diff -ur util-vserver-0.30.209/scripts/vserver-setup.functions util-vserver-0.30.209.cpuset/scripts/vserver-setup.functions
2 --- util-vserver-0.30.209/scripts/vserver-setup.functions 2005-02-26 00:32:02.000000000 +0100
3 +++ util-vserver-0.30.209.cpuset/scripts/vserver-setup.functions 2005-11-25 15:11:30.224131360 +0100
12 declare -a SETUP_INTERFACES=()
13 declare -a SETUP_FLAGS=()
15 -declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:"
16 +declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:"
17 declare -r SETUP_HELPMSG=$"
18 --context ... the static context of the vserver [default: none; a dynamic
19 context will be assumed]
21 this becomes a per vserver limit)
22 private: No other process can join this security context.
25 + ... declares the CPUSET this vserver will run in [default: none]
26 + --cpusetcpus <number[-number][:<exclusive>]>
27 + ... sets which cpus belong to the CPUSET,
28 + exclusive is a flag (0|1) prohibiting any other cpuset from
30 + --cpusetmems <number[-number][:<exclusive>]>
31 + ... sets which memory pools belong to the CPUSET,
32 + exclusive is a flag (0|1) prohibiting any other cpuset from
33 + using those memory pools
35 ... configures the initstyle (e.g. minit,sysv,plain)
38 (--netbcast) SETUP_NETBCAST=$2;;
39 (--interface) SETUP_INTERFACES=( "${SETUP_INTERFACES[@]}" "$2" );;
40 (--initstyle) SETUP_INITSTYLE=$2;;
41 + (--cpuset) SETUP_CPUSET=$2;;
42 + (--cpusetcpus) old_IFS=$IFS
46 + SETUP_CPUSETCPUSEXCL=$2
49 + (--cpusetmems) old_IFS=$IFS
53 + SETUP_CPUSETMEMSEXCL=$2
56 (--flags) old_IFS=$IFS
60 local cfgdir=${SETUP_CONFDIR:?}
63 - mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts
64 + mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts "$cfgdir"/cpuset
66 _setup_writeSingleOption "$name" "$cfgdir"/name
67 _setup_writeSingleOption "$SETUP_CONTEXT" "$cfgdir"/context
69 _setup_writeSingleOption "$SETUP_NETPREFIX" "$cfgdir"/interfaces/prefix
70 _setup_writeSingleOption "$SETUP_NETBCAST" "$cfgdir"/interfaces/bcast
71 _setup_writeSingleOption "$SETUP_INITSTYLE" "$cfgdir"/apps/init/style
72 + _setup_writeSingleOption "$SETUP_CPUSET" "$cfgdir"/cpuset/name
73 + _setup_writeSingleOption "$SETUP_CPUSETCPUS" "$cfgdir"/cpuset/cpus
74 + _setup_writeSingleOption "$SETUP_CPUSETCPUSEXCL" "$cfgdir"/cpuset/cpus_exclusive
75 + _setup_writeSingleOption "$SETUP_CPUSETMEMS" "$cfgdir"/cpuset/mems
76 + _setup_writeSingleOption "$SETUP_CPUSETMEMSEXCL" "$cfgdir"/cpuset/mem_exclusive
79 for i in "${SETUP_INTERFACES[@]}"; do
80 diff -ur util-vserver-0.30.209/scripts/vserver.functions util-vserver-0.30.209.cpuset/scripts/vserver.functions
81 --- util-vserver-0.30.209/scripts/vserver.functions 2005-11-25 14:30:27.665999880 +0100
82 +++ util-vserver-0.30.209.cpuset/scripts/vserver.functions 2005-11-25 15:11:04.593027880 +0100
91 + local f="$vdir"/cpuset
95 + test -d "$f" || return 0
96 + test -e "$f"/name || return 0
98 + read cpuset < "$f"/name
99 + test -e "$f"/nocreate || {
100 + test -d /dev/cpuset/"$cpuset" || mkdir /dev/cpuset/"$cpuset" || configured=1
101 + for i in cpus mems cpu_exclusive mem_exclusive; do
102 + if test -e "$f"/"$i"; then
103 + cat "$f"/"$i" >/dev/cpuset/"$cpuset"/"$i" 2>/dev/null || {
110 + echo $$ >/dev/cpuset/"$cpuset"/tasks || configured=1
111 + if [ "$configured" -ne 0 ]; then
113 +WARNING: Failed to create or CPUSET \"$cpuset\" does not exist! Not using it!" >&2
114 + rmdir /dev/cpuset/"$cpuset" 2>/dev/null || :
119 +function removeCPUSET
123 + local f="$vdir"/cpuset
125 + test -d "$f" || return 0
126 + test -e "$f"/name || return 0
128 + read cpuset < "$f"/name
129 + test -e "$f"/nocreate || {
130 + rmdir /dev/cpuset/"$cpuset" 2>/dev/null || :
134 function _mountVserverInternal
137 diff -ur util-vserver-0.30.209/scripts/vserver.start util-vserver-0.30.209.cpuset/scripts/vserver.start
138 --- util-vserver-0.30.209/scripts/vserver.start 2005-10-28 20:41:32.000000000 +0200
139 +++ util-vserver-0.30.209.cpuset/scripts/vserver.start 2005-11-25 14:30:14.958931648 +0100
142 mountVserver "$VSERVER_DIR" && is_mounted=1
143 prepareInit "$VSERVER_DIR"
144 +addtoCPUSET "$VSERVER_DIR"
146 pushd "$VSERVER_DIR"/vdir/ >/dev/null
147 execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start
148 diff -ur util-vserver-0.30.209/scripts/vserver.stop util-vserver-0.30.209.cpuset/scripts/vserver.stop
149 --- util-vserver-0.30.209/scripts/vserver.stop 2005-10-29 17:35:43.000000000 +0200
150 +++ util-vserver-0.30.209.cpuset/scripts/vserver.stop 2005-11-25 15:12:23.679004984 +0100
152 disableInterfaces "$VSERVER_DIR"
154 execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop
155 +removeCPUSET "$VSERVER_DIR"
156 diff -ur util-vserver-0.30.209/scripts/vserver.suexec util-vserver-0.30.209.cpuset/scripts/vserver.suexec
157 --- util-vserver-0.30.209/scripts/vserver.suexec 2005-07-15 21:01:06.000000000 +0200
158 +++ util-vserver-0.30.209.cpuset/scripts/vserver.suexec 2005-11-25 14:30:14.958931648 +0100
162 generateOptions "$VSERVER_DIR"
163 +addtoCPUSET "$VSERVER_DIR"