diff mbox series

kselftest/cgroup: Add cleanup() to test_cpuset_prs.sh

Message ID 20221118101330.251332-1-kamalesh.babulal@oracle.com (mailing list archive)
State Accepted
Commit 1e85591db11b7ac097a1b34887c682e6353798c4
Headers show
Series kselftest/cgroup: Add cleanup() to test_cpuset_prs.sh | expand

Commit Message

Kamalesh Babulal Nov. 18, 2022, 10:13 a.m. UTC
Install a cleanup function using the trap command for signals EXIT,
SIGINT, SIGQUIT and SIGABRT.  The cleanup function will perform:
1. Online the CPUs that were made offline during the test.
2. Removing the cgroups created.
3. Restoring the original /sys/kernel/debug/sched/verbose value,
   currently it's left turned on, irrespective of the original
   configuration value.

the test performs steps 1 and 2, on the successful runs, but not during
all of the failed runs.  With the cleanup(), the system will perform all
three steps during failed/passed test runs.

Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
---
 .../testing/selftests/cgroup/test_cpuset_prs.sh | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

Comments

Waiman Long Nov. 18, 2022, 8:22 p.m. UTC | #1
On 11/18/22 05:13, Kamalesh Babulal wrote:
> Install a cleanup function using the trap command for signals EXIT,
> SIGINT, SIGQUIT and SIGABRT.  The cleanup function will perform:
> 1. Online the CPUs that were made offline during the test.
> 2. Removing the cgroups created.
> 3. Restoring the original /sys/kernel/debug/sched/verbose value,
>     currently it's left turned on, irrespective of the original
>     configuration value.
>
> the test performs steps 1 and 2, on the successful runs, but not during
> all of the failed runs.  With the cleanup(), the system will perform all
> three steps during failed/passed test runs.
>
> Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
> ---
>   .../testing/selftests/cgroup/test_cpuset_prs.sh | 17 ++++++++++++++++-
>   1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/cgroup/test_cpuset_prs.sh b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
> index 526d2c42d870..b8ed82b55b1d 100755
> --- a/tools/testing/selftests/cgroup/test_cpuset_prs.sh
> +++ b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
> @@ -16,7 +16,12 @@ skip_test() {
>   [[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"
>   
>   # Set sched verbose flag, if available
> -[[ -d /sys/kernel/debug/sched ]] && echo Y > /sys/kernel/debug/sched/verbose
> +if [[ -d /sys/kernel/debug/sched ]]
> +then
> +	# Used to restore the original setting during cleanup
> +	SCHED_DEBUG=$(cat /sys/kernel/debug/sched/verbose)
> +	echo Y > /sys/kernel/debug/sched/verbose
> +fi
>   
>   # Get wait_inotify location
>   WAIT_INOTIFY=$(cd $(dirname $0); pwd)/wait_inotify
> @@ -54,6 +59,15 @@ echo +cpuset > cgroup.subtree_control
>   [[ -d test ]] || mkdir test
>   cd test
>   
> +cleanup()
> +{
> +	online_cpus
> +	rmdir A1/A2/A3 A1/A2 A1 B1 > /dev/null 2>&1
> +	cd ..
> +	rmdir test > /dev/null 2>&1
> +	echo "$SCHED_DEBUG" > /sys/kernel/debug/sched/verbose
> +}
> +
>   # Pause in ms
>   pause()
>   {
> @@ -666,6 +680,7 @@ test_inotify()
>   	fi
>   }
>   
> +trap cleanup 0 2 3 6
>   run_state_test TEST_MATRIX
>   test_isolated
>   test_inotify

That looks good to me. Thanks for the improvement.

Acked-by: Waiman Long <longman@redhat.com>
Tejun Heo Nov. 22, 2022, 8:26 p.m. UTC | #2
On Fri, Nov 18, 2022 at 03:43:30PM +0530, Kamalesh Babulal wrote:
> Install a cleanup function using the trap command for signals EXIT,
> SIGINT, SIGQUIT and SIGABRT.  The cleanup function will perform:
> 1. Online the CPUs that were made offline during the test.
> 2. Removing the cgroups created.
> 3. Restoring the original /sys/kernel/debug/sched/verbose value,
>    currently it's left turned on, irrespective of the original
>    configuration value.
> 
> the test performs steps 1 and 2, on the successful runs, but not during
> all of the failed runs.  With the cleanup(), the system will perform all
> three steps during failed/passed test runs.
> 
> Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>

Applied cgroup/for-6.2.

Thanks.
diff mbox series

Patch

diff --git a/tools/testing/selftests/cgroup/test_cpuset_prs.sh b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
index 526d2c42d870..b8ed82b55b1d 100755
--- a/tools/testing/selftests/cgroup/test_cpuset_prs.sh
+++ b/tools/testing/selftests/cgroup/test_cpuset_prs.sh
@@ -16,7 +16,12 @@  skip_test() {
 [[ $(id -u) -eq 0 ]] || skip_test "Test must be run as root!"
 
 # Set sched verbose flag, if available
-[[ -d /sys/kernel/debug/sched ]] && echo Y > /sys/kernel/debug/sched/verbose
+if [[ -d /sys/kernel/debug/sched ]]
+then
+	# Used to restore the original setting during cleanup
+	SCHED_DEBUG=$(cat /sys/kernel/debug/sched/verbose)
+	echo Y > /sys/kernel/debug/sched/verbose
+fi
 
 # Get wait_inotify location
 WAIT_INOTIFY=$(cd $(dirname $0); pwd)/wait_inotify
@@ -54,6 +59,15 @@  echo +cpuset > cgroup.subtree_control
 [[ -d test ]] || mkdir test
 cd test
 
+cleanup()
+{
+	online_cpus
+	rmdir A1/A2/A3 A1/A2 A1 B1 > /dev/null 2>&1
+	cd ..
+	rmdir test > /dev/null 2>&1
+	echo "$SCHED_DEBUG" > /sys/kernel/debug/sched/verbose
+}
+
 # Pause in ms
 pause()
 {
@@ -666,6 +680,7 @@  test_inotify()
 	fi
 }
 
+trap cleanup 0 2 3 6
 run_state_test TEST_MATRIX
 test_isolated
 test_inotify