]> git.pld-linux.org Git - packages/util-vserver.git/blobdiff - util-vserver-cpuset.patch
- sorted BRs
[packages/util-vserver.git] / util-vserver-cpuset.patch
index cbcccb10e242d34e99e9f6f78b8e3b8d9240c426..d4a6cf07866976aec4b763f7a0f29ca421175aff 100644 (file)
@@ -1,23 +1,24 @@
 diff -ur util-vserver-0.30.209/scripts/vserver-setup.functions util-vserver-0.30.209.cpuset/scripts/vserver-setup.functions
 --- util-vserver-0.30.209/scripts/vserver-setup.functions      2005-02-26 00:32:02.000000000 +0100
 +++ util-vserver-0.30.209.cpuset/scripts/vserver-setup.functions       2005-11-25 15:11:30.224131360 +0100
-@@ -24,11 +24,14 @@
+@@ -24,11 +24,15 @@
  SETUP_CONFDIR=
  SETUP_CONTEXT=
  SETUP_INITSTYLE=
 +SETUP_CPUSET=
 +SETUP_CPUSETCPUS=
 +SETUP_CPUSETMEMS=
++SETUP_CPUSETVIRT=
  
  declare -a SETUP_INTERFACES=()
  declare -a SETUP_FLAGS=()
  
 -declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:"
-+declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:"
++declare -r SETUP_OPTIONS="confdir:,lockfile:,hostname:,netdev:,netmask:,netprefix:,netbcast:,interface:,flags:,context:,initstyle:,cpuset:,cpusetcpus:,cpusetmems:,cpusetvirt"
  declare -r SETUP_HELPMSG=$"
      --context   ...  the static context of the vserver [default: none; a dynamic
                       context will be assumed]
-@@ -55,6 +58,16 @@
+@@ -55,6 +58,19 @@
                            this becomes a per vserver limit)
                     private: No other process can join this security context.
                            Even root
@@ -31,10 +32,13 @@ diff -ur util-vserver-0.30.209/scripts/vserver-setup.functions util-vserver-0.30
 +              ...  sets which memory pools belong to the CPUSET,
 +                   exclusive is a flag (0|1) prohibiting any other cpuset from
 +                   using those memory pools
++    --cpusetvirt
++              ...  virtualize cpuset (guest will see only CPUs defined in cpuset)
++                   Requires kernel patch from http://www.bullopensource.org/cpuset/
      --initstyle <style>
                  ...  configures the initstyle (e.g. minit,sysv,plain)
  "
-@@ -72,6 +85,21 @@
+@@ -72,6 +85,22 @@
        (--netbcast)    SETUP_NETBCAST=$2;;
        (--interface)   SETUP_INTERFACES=( "${SETUP_INTERFACES[@]}" "$2" );;
        (--initstyle)   SETUP_INITSTYLE=$2;;
@@ -53,6 +57,7 @@ diff -ur util-vserver-0.30.209/scripts/vserver-setup.functions util-vserver-0.30
 +                      SETUP_CPUSETMEMSEXCL=$2
 +                      IFS=$old_IFS
 +                      ;;
++      (--cpusetvirt)  SETUP_CPUSETVIRT=1;;
        (--flags)       old_IFS=$IFS
                        IFS=,
                        set -- $2
@@ -65,7 +70,7 @@ diff -ur util-vserver-0.30.209/scripts/vserver-setup.functions util-vserver-0.30
  
      _setup_writeSingleOption "$name"            "$cfgdir"/name
      _setup_writeSingleOption "$SETUP_CONTEXT"   "$cfgdir"/context
-@@ -150,6 +176,11 @@
+@@ -150,6 +176,12 @@
      _setup_writeSingleOption "$SETUP_NETPREFIX" "$cfgdir"/interfaces/prefix
      _setup_writeSingleOption "$SETUP_NETBCAST"  "$cfgdir"/interfaces/bcast
      _setup_writeSingleOption "$SETUP_INITSTYLE" "$cfgdir"/apps/init/style
@@ -74,6 +79,7 @@ diff -ur util-vserver-0.30.209/scripts/vserver-setup.functions util-vserver-0.30
 +    _setup_writeSingleOption "$SETUP_CPUSETCPUSEXCL" "$cfgdir"/cpuset/cpus_exclusive
 +    _setup_writeSingleOption "$SETUP_CPUSETMEMS"     "$cfgdir"/cpuset/mems
 +    _setup_writeSingleOption "$SETUP_CPUSETMEMSEXCL" "$cfgdir"/cpuset/mem_exclusive
++    _setup_writeSingleOption "$SETUP_CPUSETVIRT"     "$cfgdir"/cpuset/virtualize
  
      local idx=0
      for i in "${SETUP_INTERFACES[@]}"; do
@@ -90,29 +96,29 @@ diff -ur util-vserver-0.30.209/scripts/vserver.functions util-vserver-0.30.209.c
 +    local cpuset
 +    local f="$vdir"/cpuset
 +    local i
-+    local v
++    local configured=0
 +
 +    test -d "$f" || return 0
 +    test -e "$f"/name || return 0
 +
 +    read cpuset < "$f"/name
 +    test -e "$f"/nocreate || {
-+      test -d /dev/cpuset/"$cpuset" || mkdir /dev/cpuset/"$cpuset"
-+      for i in cpus mems cpu_exclusive mem_exclusive; do
++      test -d /dev/cpuset/"$cpuset" || mkdir /dev/cpuset/"$cpuset" || configured=1
++      for i in cpus mems cpu_exclusive mem_exclusive virtualize; do
 +          if test -e "$f"/"$i"; then
-+              read v < "$f"/"$i"
-+              echo $v >/dev/cpuset/"$cpuset"/"$i" || {
-+                  rmdir /dev/cpuset/"$cpuset"
++              cat "$f"/"$i" >/dev/cpuset/"$cpuset"/"$i" 2>/dev/null || {
++                  configured=1
 +                  break
 +              }
++          fi
 +      done
 +    }
 +
-+    if [ -e /dev/cpuset/"$cpuset"/tasks ] ; then
-+      echo $$ >/dev/cpuset/"$cpuset"/tasks
-+    else
++    echo $$ >/dev/cpuset/"$cpuset"/tasks || configured=1
++    if [ "$configured" -ne 0 ]; then
 +      warning $"\
 +WARNING: Failed to create or CPUSET \"$cpuset\" does not exist! Not using it!" >&2
++      rmdir /dev/cpuset/"$cpuset" 2>/dev/null || :
 +      return 0
 +    fi
 +}
@@ -128,7 +134,7 @@ diff -ur util-vserver-0.30.209/scripts/vserver.functions util-vserver-0.30.209.c
 +
 +    read cpuset < "$f"/name
 +    test -e "$f"/nocreate || {
-+      rmdir /dev/cpuset/"$cpuset"
++      rmdir /dev/cpuset/"$cpuset" 2>/dev/null || :
 +    }
 +}
 +
This page took 0.026789 seconds and 4 git commands to generate.