From 0773af993a11444aabf50c3ddb748da9ed0d060f Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Tue, 19 Jan 2021 08:47:19 +0100 Subject: [PATCH] test/vhost_perf: detect cgroups version Detect which cgroups version is used to set IO throttling in the guest system. Change-Id: I4e7f482a8590dfe59da461cf5ef0a557b508fa98 Signed-off-by: Karol Latecki Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5981 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- test/vhost/perf_bench/vhost_perf.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/test/vhost/perf_bench/vhost_perf.sh b/test/vhost/perf_bench/vhost_perf.sh index e6e879894..e0aba42d8 100755 --- a/test/vhost/perf_bench/vhost_perf.sh +++ b/test/vhost/perf_bench/vhost_perf.sh @@ -395,10 +395,23 @@ for vm_num in $used_vms; do fi if [[ -n "$vm_throttle" ]]; then + # Check whether cgroups or cgroupsv2 is used on guest system + # Simple, naive & quick approach as it should do the trick for simple + # VMs used for performance tests + c_gr_ver=2 + if vm_exec "$vm_num" "grep '^cgroup ' /proc/mounts"; then + c_gr_ver=1 + fi block=$(printf '%s' $SCSI_DISK) major_minor=$(vm_exec "$vm_num" "cat /sys/block/$block/dev") - vm_exec "$vm_num" "echo \"$major_minor $vm_throttle\" > /sys/fs/cgroup/blkio/blkio.throttle.read_iops_device" - vm_exec "$vm_num" "echo \"$major_minor $vm_throttle\" > /sys/fs/cgroup/blkio/blkio.throttle.write_iops_device" + + if [[ $c_gr_ver == 1 ]]; then + vm_exec "$vm_num" "echo \"$major_minor $vm_throttle\" > /sys/fs/cgroup/blkio/blkio.throttle.read_iops_device" + vm_exec "$vm_num" "echo \"$major_minor $vm_throttle\" > /sys/fs/cgroup/blkio/blkio.throttle.write_iops_device" + elif [[ $c_gr_ver == 2 ]]; then + vm_exec "$vm_num" "echo '+io' > /sys/fs/cgroup/cgroup.subtree_control" + vm_exec "$vm_num" "echo \"$major_minor riops=$vm_throttle wiops=$vm_throttle\" > /sys/fs/cgroup/user.slice/io.max" + fi fi fio_disks+=" --vm=${vm_num}$(printf ':/dev/%s' $SCSI_DISK)"