From a9614bf6e7ed14261a1cc1525db0e7305a1d9335 Mon Sep 17 00:00:00 2001 From: Michal Berger Date: Fri, 18 Feb 2022 12:19:17 +0100 Subject: [PATCH] test/scheduler: Create unique list of existing cgroups prior moving them Since multiple processes may belong to the same cgroup, this will make sure we don't call move_cgroup_procs() against single cgroup multiple times. Signed-off-by: Michal Berger Change-Id: I64d12e5ac8e9c628ff7556b566f2090c965ab35a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11671 Tested-by: SPDK CI Jenkins Community-CI: Broadcom CI Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- test/scheduler/cgroups.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/scheduler/cgroups.sh b/test/scheduler/cgroups.sh index 68bc3230d..332fe060d 100644 --- a/test/scheduler/cgroups.sh +++ b/test/scheduler/cgroups.sh @@ -12,6 +12,7 @@ check_cgroup() { init_cpuset_cgroup() { local cgroup + local -A cgroups=() # For cgroup-v2 we need to prepare cpuset subsystem on our own if ((cgroup_version == 2)); then @@ -29,8 +30,11 @@ init_cpuset_cgroup() { cgroup=$(< "$cgroup") || continue cgroup=${cgroup##*:} [[ $cgroup != / ]] || continue - move_cgroup_procs "${cgroup##*:}" / + cgroups["$cgroup"]=$cgroup done 2> /dev/null + for cgroup in "${!cgroups[@]}"; do + move_cgroup_procs "$cgroup" / + done # Now, move all the threads to the cpuset move_cgroup_procs / /cpuset elif ((cgroup_version == 1)); then