Commit 9e1d2b89 authored by Karol Latecki's avatar Karol Latecki Committed by Daniel Verkamp
Browse files

test/vhost: run controllers on different cores in lvol test



Add possibility to attach lvol bdevs to controllers running
on varying CPU cores

Change-Id: I8d9eec854b2d0ee6c3b8863cefe30d24de138d40
Signed-off-by: default avatarKarol Latecki <karol.latecki@intel.com>
Reviewed-on: https://review.gerrithub.io/380441


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent ba8515c6
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
vhost_reactor_mask=0xfffffffff
vhost_master_core=0

VM_0_qemu_mask=0x2
VM_0_qemu_numa_node=0

VM_1_qemu_mask=0x4
VM_1_qemu_numa_node=0

VM_2_qemu_mask=0x8
VM_2_qemu_numa_node=0

VM_3_qemu_mask=0x10
VM_3_qemu_numa_node=0

VM_4_qemu_mask=0x20
VM_4_qemu_numa_node=0

VM_5_qemu_mask=0x40
VM_5_qemu_numa_node=0

VM_6_qemu_mask=0x80
VM_6_qemu_numa_node=0

VM_7_qemu_mask=0x100
VM_7_qemu_numa_node=0

VM_8_qemu_mask=0x200
VM_8_qemu_numa_node=0

VM_9_qemu_mask=0x400
VM_9_qemu_numa_node=0

VM_10_qemu_mask=0x800
VM_10_qemu_numa_node=0

VM_11_qemu_mask=0x1000
VM_11_qemu_numa_node=0

VM_12_qemu_mask=0x40000
VM_12_qemu_numa_node=1

VM_13_qemu_mask=0x80000
VM_13_qemu_numa_node=1

VM_14_qemu_mask=0x100000
VM_14_qemu_numa_node=1

VM_15_qemu_mask=0x200000
VM_15_qemu_numa_node=1

VM_16_qemu_mask=0x400000
VM_16_qemu_numa_node=1

VM_17_qemu_mask=0x800000
VM_17_qemu_numa_node=1

VM_18_qemu_mask=0x1000000
VM_18_qemu_numa_node=1

VM_19_qemu_mask=0x2000000
VM_19_qemu_numa_node=1

VM_20_qemu_mask=0x4000000
VM_20_qemu_numa_node=1

VM_21_qemu_mask=0x8000000
VM_21_qemu_numa_node=1

VM_22_qemu_mask=0x10000000
VM_22_qemu_numa_node=1

VM_23_qemu_mask=0x20000000
VM_23_qemu_numa_node=1
+28 −4
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ max_disks=""
ctrl_type="vhost_scsi"
use_fs=false
nested_lvol=false
distribute_cores=false
base_bdev_size=10000
nest_bdev_size=""

@@ -39,6 +40,9 @@ function usage()
    echo "                          (NVMe->lvol_store->lvol_bdev->lvol_store->lvol_bdev)"
    echo "                          Default: False"
    echo "-x                        set -x for script debug"
    echo "    --distribute-cores    Use custom config file and run vhost controllers"
    echo "                          on different CPU cores instead of single core."
    echo "                          Default: False"
    exit 0
}

@@ -52,6 +56,7 @@ while getopts 'xh-:' optchar; do
            max-disks=*) max_disks="${OPTARG#*=}" ;;
            ctrl-type=*) ctrl_type="${OPTARG#*=}" ;;
            nested-lvol) nested_lvol=true ;;
            distribute-cores) distribute_cores=true ;;
            *) usage $0 "Invalid argument '$OPTARG'" ;;
        esac
        ;;
@@ -75,7 +80,20 @@ is lower than number of requested disks for test ($max_disks)"
    exit 1
fi

trap 'error_exit "${FUNCNAME}" "${LINENO}"' ERR
if $distribute_cores; then
    cp $COMMON_DIR/autotest.config $COMMON_DIR/autotest.config.bak
    cp $BASE_DIR/autotest.config $COMMON_DIR/autotest.config
    . $COMMON_DIR/common.sh
fi

function restore_acfg()
{
    if $distribute_cores; then
        mv $COMMON_DIR/autotest.config.bak $COMMON_DIR/autotest.config
    fi
}

trap 'restore_acfg; error_exit "${FUNCNAME}" "${LINENO}"' ERR

vm_kill_all

@@ -123,7 +141,7 @@ fi
# For each VM create one lvol bdev on each 'normal' and nested lvol store
for (( i=0; i<$vm_count; i++)); do
    bdevs=()
    echo "INFO: Creating lvol bdevs for VM $j"
    echo "INFO: Creating lvol bdevs for VM $i"
    for lvol_store in "${lvol_stores[@]}"; do
        lb_guid=$($rpc_py construct_lvol_bdev $lvol_store 10000)
        lvol_bdevs+=("$lb_guid")
@@ -149,8 +167,13 @@ for (( i=0; i<$vm_count; i++)); do
    setup_cmd+=" --os=/home/sys_sgsw/vhost_vm_image.qcow2"

    # Create single SCSI controller or multiple BLK controllers for this VM
    if $distribute_cores; then
        mask="VM_${i}_qemu_mask"
        mask_arg="--cpumask ${!mask}"
    fi

    if [[ "$ctrl_type" == "vhost_scsi" ]]; then
        $rpc_py construct_vhost_scsi_controller naa.0.$i
        $rpc_py construct_vhost_scsi_controller naa.0.$i $mask_arg
        for (( j=0; j<${#bdevs[@]}; j++)); do
            $rpc_py add_vhost_scsi_lun naa.0.$i $j ${bdevs[$j]}
        done
@@ -158,7 +181,7 @@ for (( i=0; i<$vm_count; i++)); do
    elif [[ "$ctrl_type" == "vhost_blk" ]]; then
        disk=""
        for (( j=0; j<${#bdevs[@]}; j++)); do
            $rpc_py construct_vhost_blk_controller naa.$j.$i ${bdevs[$j]}
            $rpc_py construct_vhost_blk_controller naa.$j.$i ${bdevs[$j]} $mask_arg
            disk+="${j}_size_1500M:"
        done
        disk="${disk::-1}"
@@ -266,3 +289,4 @@ $rpc_py get_luns

echo "INFO: Shutting down SPDK vhost app..."
spdk_vhost_kill
restore_acfg