Changeset 2664

Show
Ignore:
Timestamp:
01/20/08 08:56:23 (10 months ago)
Author:
dhozac
Message:

Add preliminary support for pid and network namespaces.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/doc/configuration.xml

    r2624 r2664  
    15531553      </collection> 
    15541554    </collection> 
     1555 
     1556    <collection name="spaces" since="0.30.215"> 
     1557      <boolean name="pid"> 
     1558        <description>Enables pid virtualization for this guest</description> 
     1559      </boolean> 
     1560      <boolean name="net"> 
     1561        <description>Enable network virtualization for this guest</description> 
     1562      </boolean> 
     1563      <scalar name="mask"> 
     1564        <description>Contains a mask of spaces to clone/enter</description> 
     1565    </collection> 
    15551566  </collection> 
    15561567  </database> 
  • trunk/scripts/vserver.functions

    r2656 r2664  
    4747declare -a OPTS_VTAG_ENTER=() 
    4848declare -a OPTS_VMEMCTRL=() 
     49declare -a OPTS_VSPACE=() 
    4950 
    5051declare -a STOPCMD_PREPARE=() 
     
    693694function _generateMemctrlOptions 
    694695{ 
    695     local vdir="$
     696    local vdir="$1
    696697    local badness 
    697698 
     
    700701 
    701702    OPTS_VMEMCTRL=( --badness "$badness" ) 
     703} 
     704 
     705function _generateSpaceOptions 
     706{ 
     707    local vdir="$1" 
     708    local d="$vdir"/spaces 
     709 
     710    test ! -e "$d"/pid || \ 
     711      OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) 
     712 
     713    test ! -e "$d"/net || { 
     714        OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) 
     715        # network context and namespace don't make much sense 
     716        _HAVE_CHBIND_OPTIONS=1 
     717        CHBIND_CMD=() 
     718    } 
     719 
     720    local mask 
     721    getFileValue mask "$d"/mask || \ 
     722      OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --mask "$mask" ) 
    702723} 
    703724 
     
    747768    _generateTagOptions         "$1" 
    748769    _generateMemctrlOptions     "$1" 
     770    _generateSpaceOptions       "$1" 
    749771 
    750772    if test -n "$_IS_FAKEINIT"; then 
  • trunk/scripts/vserver.start

    r2626 r2664  
    138138    $_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \ 
    139139    $_VTAG       --create "${OPTS_VTAG_CREATE[@]}" --silent -- \ 
     140    $_VSPACE     --new "${OPTS_VSPACE[@]}" -- \ 
    140141    $_VCONTEXT   --create "${OPTS_VCONTEXT_CREATE[@]}" -- \ 
    141142    ${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \ 
    142143    ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \ 
     144    $_VSPACE     --set "${OPTS_VSPACE[@]}" -- \ 
    143145    $_VLIMIT     --dir "$VSERVER_DIR"/rlimits --missingok -- \ 
    144146    $_VSCHED     --xid self --force "${OPTS_VSCHED[@]}" -- \ 
  • trunk/scripts/vserver.stop

    r2628 r2664  
    8181    "${NICE_CMD[@]}" \ 
    8282    "${CHBIND_CMD[@]}" \ 
     83    "$_VSPACE" --enter --xid "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \ 
    8384    "$_VTAG" --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \ 
    8485    $_VCONTEXT $SILENT_OPT --migrate --chroot --xid "$S_CONTEXT" -- \ 
  • trunk/scripts/vserver.suexec

    r2599 r2664  
    3939        $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \ 
    4040        ${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \ 
     41        $_VSPACE --enter --xid "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \ 
    4142        $_VTAG --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \ 
    4243        $_VCONTEXT $SILENT_OPT --migrate --chroot \ 
  • trunk/src/vspace.c

    r2659 r2664  
    111111  pid_t pid; 
    112112 
     113  /* optimize default case */ 
     114  if (mask == 0) 
     115    return; 
     116 
    113117  signal(SIGCHLD, SIG_DFL); 
    114118