perf/vhost: Add NUMA-aware cgroup setup for the VMs
Each VM will be placed under dedicated cgroup pinned to proper set of cpus and mem nodes as defined in the provided configuration. Signed-off-by: Michal Berger <michal.berger@intel.com> Change-Id: Id5d284ee9cbde541b8344ab38c3f77aa5430b1b1 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13704 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
3d5e27df7d
commit
6872c67e4f
@ -7,7 +7,7 @@ declare -r sysfs_node=$sysfs_system/node
|
||||
declare -r scheduler=$rootdir/test/event/scheduler/scheduler
|
||||
declare -r plugin=scheduler_plugin
|
||||
|
||||
source "$testdir/cgroups.sh"
|
||||
source "$rootdir/test/scheduler/cgroups.sh"
|
||||
|
||||
fold_list_onto_array() {
|
||||
local array=$1
|
||||
|
@ -773,6 +773,8 @@ function vm_setup() {
|
||||
notice "Saving to $vm_dir/run.sh"
|
||||
cat <<- RUN > "$vm_dir/run.sh"
|
||||
#!/bin/bash
|
||||
rootdir=$rootdir
|
||||
source "\$rootdir/test/scheduler/common.sh"
|
||||
qemu_log () {
|
||||
echo "=== qemu.log ==="
|
||||
[[ -s $vm_dir/qemu.log ]] && cat $vm_dir/qemu.log
|
||||
@ -790,12 +792,18 @@ function vm_setup() {
|
||||
chmod +r $vm_dir/*
|
||||
echo "Running VM in $vm_dir"
|
||||
rm -f $qemu_pid_file
|
||||
cgroup=\$(get_cgroup \$$)
|
||||
set_cgroup_attr_top_bottom \$$ cgroup.subtree_control "+cpuset"
|
||||
create_cgroup \$cgroup/qemu.$vm_num
|
||||
set_cgroup_attr "\$cgroup/qemu.$vm_num" cpuset.mems "$node_num"
|
||||
set_cgroup_attr "\$cgroup/qemu.$vm_num" cpuset.cpus "$task_mask"
|
||||
"\${qemu_cmd[@]}"
|
||||
|
||||
echo "Waiting for QEMU pid file"
|
||||
sleep 1
|
||||
[[ ! -f $qemu_pid_file ]] && sleep 1
|
||||
[[ ! -f $qemu_pid_file ]] && echo "ERROR: no qemu pid file found" && exit 1
|
||||
set_cgroup_attr "\$cgroup/qemu.$vm_num" cgroup.threads \$(< "$qemu_pid_file")
|
||||
exit 0
|
||||
# EOF
|
||||
RUN
|
||||
|
Loading…
Reference in New Issue
Block a user