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
13 declare -a SETUP_INTERFACES=()
14 declare -a SETUP_FLAGS=()
16 -declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:"
17 +declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:,cpusetvirt"
18 declare -r SETUP_HELPMSG=$"
19 --context ... the static context of the vserver [default: none; a dynamic
20 context will be assumed]
22 this becomes a per vserver limit)
23 private: No other process can join this security context.
26 + ... declares the CPUSET this vserver will run in [default: none]
27 + --cpusetcpus <number[-number][:<exclusive>]>
28 + ... sets which cpus belong to the CPUSET,
29 + exclusive is a flag (0|1) prohibiting any other cpuset from
31 + --cpusetmems <number[-number][:<exclusive>]>
32 + ... sets which memory pools belong to the CPUSET,
33 + exclusive is a flag (0|1) prohibiting any other cpuset from
34 + using those memory pools
36 + ... virtualize cpuset (guest will see only CPUs defined in cpuset)
37 + Requires kernel patch from http://www.bullopensource.org/cpuset/
39 ... configures the initstyle (e.g. minit,sysv,plain)
42 (--netbcast) SETUP_NETBCAST=$2;;
43 (--interface) SETUP_INTERFACES=( "${SETUP_INTERFACES[@]}" "$2" );;
44 (--initstyle) SETUP_INITSTYLE=$2;;
45 + (--cpuset) SETUP_CPUSET=$2;;
46 + (--cpusetcpus) old_IFS=$IFS
50 + SETUP_CPUSETCPUSEXCL=$2
53 + (--cpusetmems) old_IFS=$IFS
57 + SETUP_CPUSETMEMSEXCL=$2
60 + (--cpusetvirt) SETUP_CPUSETVIRT=1;;
61 (--flags) old_IFS=$IFS
65 local cfgdir=${SETUP_CONFDIR:?}
68 - mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts
69 + mkdir -p "$cfgdir"/interfaces "$cfgdir"/apps/init "$cfgdir"/uts "$cfgdir"/cpuset
71 _setup_writeSingleOption "$name" "$cfgdir"/name
72 _setup_writeSingleOption "$SETUP_CONTEXT" "$cfgdir"/context
74 _setup_writeSingleOption "$SETUP_NETPREFIX" "$cfgdir"/interfaces/prefix
75 _setup_writeSingleOption "$SETUP_NETBCAST" "$cfgdir"/interfaces/bcast
76 _setup_writeSingleOption "$SETUP_INITSTYLE" "$cfgdir"/apps/init/style
77 + _setup_writeSingleOption "$SETUP_CPUSET" "$cfgdir"/cpuset/name
78 + _setup_writeSingleOption "$SETUP_CPUSETCPUS" "$cfgdir"/cpuset/cpus
79 + _setup_writeSingleOption "$SETUP_CPUSETCPUSEXCL" "$cfgdir"/cpuset/cpus_exclusive
80 + _setup_writeSingleOption "$SETUP_CPUSETMEMS" "$cfgdir"/cpuset/mems
81 + _setup_writeSingleOption "$SETUP_CPUSETMEMSEXCL" "$cfgdir"/cpuset/mem_exclusive
82 + _setup_writeSingleOption "$SETUP_CPUSETVIRT" "$cfgdir"/cpuset/virtualize
85 for i in "${SETUP_INTERFACES[@]}"; do
86 diff -ur util-vserver-0.30.209/scripts/vserver.functions util-vserver-0.30.209.cpuset/scripts/vserver.functions
87 --- util-vserver-0.30.209/scripts/vserver.functions 2005-11-25 14:30:27.665999880 +0100
88 +++ util-vserver-0.30.209.cpuset/scripts/vserver.functions 2005-11-25 15:11:04.593027880 +0100
97 + local f="$vdir"/cpuset
101 + test -d "$f" || return 0
102 + test -e "$f"/name || return 0
104 + read cpuset < "$f"/name
105 + test -e "$f"/nocreate || {
106 + test -d /dev/cpuset/"$cpuset" || mkdir /dev/cpuset/"$cpuset" || configured=1
107 + for i in cpus mems cpu_exclusive mem_exclusive virtualize; do
108 + if test -e "$f"/"$i"; then
109 + cat "$f"/"$i" >/dev/cpuset/"$cpuset"/"$i" 2>/dev/null || {
117 + echo $$ >/dev/cpuset/"$cpuset"/tasks || configured=1
118 + if [ "$configured" -ne 0 ]; then
120 +WARNING: Failed to create or CPUSET \"$cpuset\" does not exist! Not using it!" >&2
121 + rmdir /dev/cpuset/"$cpuset" 2>/dev/null || :
126 +function removeCPUSET
130 + local f="$vdir"/cpuset
132 + test -d "$f" || return 0
133 + test -e "$f"/name || return 0
135 + read cpuset < "$f"/name
136 + test -e "$f"/nocreate || {
137 + rmdir /dev/cpuset/"$cpuset" 2>/dev/null || :
141 function _mountVserverInternal
144 diff -ur util-vserver-0.30.209/scripts/vserver.start util-vserver-0.30.209.cpuset/scripts/vserver.start
145 --- util-vserver-0.30.209/scripts/vserver.start 2005-10-28 20:41:32.000000000 +0200
146 +++ util-vserver-0.30.209.cpuset/scripts/vserver.start 2005-11-25 14:30:14.958931648 +0100
149 mountVserver "$VSERVER_DIR" && is_mounted=1
150 prepareInit "$VSERVER_DIR"
151 +addtoCPUSET "$VSERVER_DIR"
153 pushd "$VSERVER_DIR"/vdir/ >/dev/null
154 execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start
155 diff -ur util-vserver-0.30.209/scripts/vserver.stop util-vserver-0.30.209.cpuset/scripts/vserver.stop
156 --- util-vserver-0.30.209/scripts/vserver.stop 2005-10-29 17:35:43.000000000 +0200
157 +++ util-vserver-0.30.209.cpuset/scripts/vserver.stop 2005-11-25 15:12:23.679004984 +0100
159 disableInterfaces "$VSERVER_DIR"
161 execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop
162 +removeCPUSET "$VSERVER_DIR"
163 diff -ur util-vserver-0.30.209/scripts/vserver.suexec util-vserver-0.30.209.cpuset/scripts/vserver.suexec
164 --- util-vserver-0.30.209/scripts/vserver.suexec 2005-07-15 21:01:06.000000000 +0200
165 +++ util-vserver-0.30.209.cpuset/scripts/vserver.suexec 2005-11-25 14:30:14.958931648 +0100
169 generateOptions "$VSERVER_DIR"
170 +addtoCPUSET "$VSERVER_DIR"