Commit da9946a7 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

test/scheduler: Add wrapper for setting up the environment



Setup boils down to selecting CPUs for exclusive use by SPDK
app(s).

Signed-off-by: default avatarMichal Berger <michalx.berger@intel.com>
Change-Id: Ie3af44d16f3f220aeca97b2d65a99297016884dc
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5739


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent c1318c5b
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
# Select cores for the test
xtrace_disable

source "$testdir/common.sh"

# Number of cpus to include in the mask
NUM_CPUS=${NUM_CPUS:-8}

map_cpus

# Build core mask. Avoid all CPUs that may be offline and skip cpu0
# (and all its potential thread siblings) as it's already doing an
# extra work for the kernel.
denied_list $(get_cpus "${cpu_node_map[0]}" "${cpu_core_map[0]}")
# If there are any isolated cpus (as defined on the kernel cmdline
# with isolcpus) they take the priority. We fill up the list up to
# NUM_CPUS, applying filtering as per the denied list. All cpus are
# taken from node0.
allowed_list "$NUM_CPUS" 0

# Assign proper resources to the cpuset/spdk
spdk_cpus=("${allowed[@]}")
spdk_cpus_csv=$(fold_array_onto_string "${spdk_cpus[@]}")
spdk_cpusmask=$(mask_cpus "${spdk_cpus[@]}")
spdk_main_core=${spdk_cpus[0]}
spdk_cpus_mems=0

# Build list of remaining cpus for posterity
denied_list "${spdk_cpus[@]}"
fold_list_onto_array allowed "${cpus[@]}"
filter_allowed_list

all_cpus=("${allowed[@]}")
all_cpus_csv=$(fold_array_onto_string "${all_cpus[@]}")
all_cpusmask=$(mask_cpus "${all_cpus[@]}")

export \
	"spdk_cpusmask=$spdk_cpusmask" \
	"spdk_cpus_csv=$spdk_cpus_csv" \
	"spdk_cpus_no=${#spdk_cpus[@]}" \
	"spdk_main_core=$spdk_main_core" \
	"all_cpusmask=$all_cpusmask" \
	"all_cpus_csv=$all_cpus_csv"

xtrace_restore