From: Enrico Scholz Date: Wed, 24 Mar 2004 05:23:43 +0000 (+0000) Subject: added scheduler support X-Git-Tag: VERSION_0_10~222 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66bf8ad2a2c6de9c31b4cd41bf1ea667b89e74cd;p=util-vserver.git added scheduler support git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1353 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/scripts/util-vserver-vars.pathsubst b/util-vserver/scripts/util-vserver-vars.pathsubst index 4e79f2b..2524ef8 100644 --- a/util-vserver/scripts/util-vserver-vars.pathsubst +++ b/util-vserver/scripts/util-vserver-vars.pathsubst @@ -72,6 +72,7 @@ _VREBOOT="$LEGACYDIR/vreboot" _VRPM="$SBINDIR/vrpm" _VRPM_PRELOAD="$PKGLIBDIR/vrpm-preload" _VRPM_WORKER="$PKGLIBDIR/vrpm-worker" +_VSCHED="$SBINDIR/vsched" _VSERVER="$SBINDIR/vserver" _VSERVER_LEGACY="$LEGACYDIR/vserver" _VSERVER_BUILD="$PKGLIBDIR/vserver-build" diff --git a/util-vserver/scripts/vserver.functions b/util-vserver/scripts/vserver.functions index 4c2a0c9..d0540ec 100644 --- a/util-vserver/scripts/vserver.functions +++ b/util-vserver/scripts/vserver.functions @@ -39,8 +39,11 @@ declare -a ENTER_SHELL=() declare -a OPTS_VCONTEXT_CREATE=() declare -a OPTS_VCONTEXT_MIGRATE=() declare -a OPTS_VATTRIBUTE=() -USE_VNAMESPACE= +declare -a OPTS_VSCHED=() + +declare -a VSERVER_EXTRA_CMDS=() +USE_VNAMESPACE= INTERFACE_CMDS_IDX=0 _HAVE_INTERFACE_OPTIONS= _HAVE_CHBIND_OPTIONS= @@ -322,6 +325,34 @@ function _generateChcontextOptions OPTS_VATTRIBUTE=( --secure "${OPTS_VATTRIBUTE[@]}" ) } +function _generateScheduleOptions +{ + local vdir=$1 + local f="$vdir"/schedule + test -e "$f" || return 0 + + local fill_rate interval tokens tokens_min tokens_max cpu_mask + { + { + read fill_rate && \ + read interval && \ + read tokens && \ + read tokens_min && \ + read tokens_max && \ + read cpu_mask || cpu_mask= + } <"$f" + } 2>/dev/null + + test "$cpu_mask" || { + echo $"Bad content in '$f'; aborting..." >&2 + false + } + + OPTS_VSCHED=( --fill-rate "$fill_rate" --interval "$interval" \ + --tokens "$tokens" --tokens_min "$tokens_min" \ + --tokens_max "$tokens_max" --cpu_mask "$cpu_mask" ) +} + function _getInterfaceValue { local val=$1 @@ -494,6 +525,7 @@ function generateOptions _generateNiceCommand "$1" _generateInitOptions "$1" _generateChcontextOptions "$1" + _generateScheduleOptions "$1" if test "$_IS_FAKEINIT"; then CHCONTEXT_INIT_OPTS=( --disconnect --flag fakeinit ) diff --git a/util-vserver/scripts/vserver.start b/util-vserver/scripts/vserver.start index 0c053ec..3c80a52 100644 --- a/util-vserver/scripts/vserver.start +++ b/util-vserver/scripts/vserver.start @@ -52,6 +52,7 @@ if $_VSERVER_INFO - FEATURE migrate; then $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \ ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \ $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \ + $_VSCHED --xid self "${OPTS_VSCHED[@]}" -- \ $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \ "${VSERVER_EXTRA_CMDS[@]}" \ $_VUNAME --xid self --set -t context="$VSERVER_DIR" -- \