[LTP] [PATCH] controllers/cgroup: Skip regression test on cgroup v2 systems

Li Wang liwang@redhat.com
Mon Mar 16 04:52:33 CET 2026


On Sun, Mar 15, 2026 at 01:59:33PM +0100, Samir wrote:
> The cgroup_regression_test.sh test2 attempts to mount a cgroup
> filesystem and expects a cgroup v1 hierarchy. On systems using
> cgroup v2 (unified hierarchy), the test fails with:
> 
> TFAIL: Failed to mount cgroup filesystem
> 
> because the legacy cgroup v1 mount layout is not available.
> 
> Add a check for the presence of /sys/fs/cgroup/cgroup.controllers,
> which indicates a cgroup v2 system. If detected, mark the test
> as TCONF since the test is only applicable to cgroup v1.
> 
> This prevents false failures when running the controllers suite
> on systems where cgroup v2 is enabled by default.
> 
> Signed-off-by: Samir <samir@linux.ibm.com>
> ---
>  .../kernel/controllers/cgroup/cgroup_regression_test.sh    | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
> index 276231fe8..f6deb0d43 100755
> --- a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
> +++ b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
> @@ -118,6 +118,13 @@ test2()
>  	local val1
>  	local val2
>  
> +	# This test is specific to cgroup v1
> +	# Check if system is using cgroup v2
> +	if [ -f /sys/fs/cgroup/cgroup.controllers ]; then

This is typically right as the '/sys/fs/cgroup' is Cgroup default mount path,
but if a tested system does not mount there, this won't work.

Maybe we can go with the cgroup_lib.sh standard way for version check?

  cgroup_require "memory"
  cgroup_version=$(cgroup_get_version "memory")
  if [ "$cgroup_version" = "2" ]; then
          tst_res TCONF "memory controller mounted on cgroup v2 hierarchy, skipping test."
          return
  fi

-- 
Regards,
Li Wang



More information about the ltp mailing list