diff mbox series

[v2] cgroup_fj_common.sh: Do not disable systemd related cgroup subsystems

Message ID 20240809073010.793324-1-maxj.fnst@fujitsu.com
State Accepted
Headers show
Series [v2] cgroup_fj_common.sh: Do not disable systemd related cgroup subsystems | expand

Commit Message

Ma Xinjian Aug. 9, 2024, 7:30 a.m. UTC
The cpu, io, memory, and pids subsystems under the root cgroup cannot be disabled
because they are used for systemd. Currently, the test of cpu and memory subsystems
in cgroup_fj_function.sh and cgroup_fj_stress.sh will report the error
"echo: write error: device or resource busy".

Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Ma Xinjian <maxj.fnst@fujitsu.com>
---
 .../kernel/controllers/cgroup_fj/cgroup_fj_common.sh      | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Petr Vorel Aug. 9, 2024, 8:45 a.m. UTC | #1
Hi Ma,

> The cpu, io, memory, and pids subsystems under the root cgroup cannot be disabled
> because they are used for systemd. Currently, the test of cpu and memory subsystems
> in cgroup_fj_function.sh and cgroup_fj_stress.sh will report the error
> "echo: write error: device or resource busy".

Could you please share a bit of info on which system it fails. Do you use cgroup v1?

Kind regards,
Petr

> Reviewed-by: Petr Vorel <pvorel@suse.cz>
> Signed-off-by: Ma Xinjian <maxj.fnst@fujitsu.com>
> ---
>  .../kernel/controllers/cgroup_fj/cgroup_fj_common.sh      | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)

> diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> index e866641ba..153d351d7 100755
> --- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> +++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> @@ -77,7 +77,13 @@ common_cleanup()

>      cgroup_cleanup

> -    [ "$cgroup_version" = "2" ] && ROD echo "-$subsystem" \> "/sys/fs/cgroup/cgroup.subtree_control"
> +    if [ "$cgroup_version" = "2" ]; then
> +        case "$subsystem" in
> +        cpu|io|memory|pids)
> +            :;;
> +        *) ROD echo "-$subsystem" \> "/sys/fs/cgroup/cgroup.subtree_control";;
> +        esac
> +    fi
>  }

>  . cgroup_lib.sh
Ma Xinjian Aug. 9, 2024, 8:52 a.m. UTC | #2
> Hi Ma,
> 
> > The cpu, io, memory, and pids subsystems under the root cgroup cannot
> > be disabled because they are used for systemd. Currently, the test of
> > cpu and memory subsystems in cgroup_fj_function.sh and
> > cgroup_fj_stress.sh will report the error
> > "echo: write error: device or resource busy".
> 
> Could you please share a bit of info on which system it fails. Do you use cgroup
> v1?

Hi Petr

It fails on Fedora 37 which uses cgroupv2.
cgroupv1 won't trigger this failure.

> 
> Kind regards,
> Petr
> 
> > Reviewed-by: Petr Vorel <pvorel@suse.cz>
> > Signed-off-by: Ma Xinjian <maxj.fnst@fujitsu.com>
> > ---
> >  .../kernel/controllers/cgroup_fj/cgroup_fj_common.sh      | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> > diff --git
> > a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > index e866641ba..153d351d7 100755
> > --- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > +++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > @@ -77,7 +77,13 @@ common_cleanup()
> 
> >      cgroup_cleanup
> 
> > -    [ "$cgroup_version" = "2" ] && ROD echo "-$subsystem" \>
> "/sys/fs/cgroup/cgroup.subtree_control"
> > +    if [ "$cgroup_version" = "2" ]; then
> > +        case "$subsystem" in
> > +        cpu|io|memory|pids)
> > +            :;;
> > +        *) ROD echo "-$subsystem" \>
> "/sys/fs/cgroup/cgroup.subtree_control";;
> > +        esac
> > +    fi
> >  }
> 
> >  . cgroup_lib.sh
Petr Vorel Aug. 9, 2024, 10:31 a.m. UTC | #3
> > Hi Ma,

> > > The cpu, io, memory, and pids subsystems under the root cgroup cannot
> > > be disabled because they are used for systemd. Currently, the test of
> > > cpu and memory subsystems in cgroup_fj_function.sh and
> > > cgroup_fj_stress.sh will report the error
> > > "echo: write error: device or resource busy".

> > Could you please share a bit of info on which system it fails. Do you use cgroup
> > v1?

> Hi Petr

> It fails on Fedora 37 which uses cgroupv2.
> cgroupv1 won't trigger this failure.

OK, thx for info, merged!

I managed to reproduce the same issue also on Debian trixie or some Alpine
(which don't use systemd).  I still wonder what could be the root cause, because
many other systemd based systems have no problem (various SLES versions and
openSUSE Tumbleweed).

Kind regards,
Petr

> > Kind regards,
> > Petr

> > > Reviewed-by: Petr Vorel <pvorel@suse.cz>
> > > Signed-off-by: Ma Xinjian <maxj.fnst@fujitsu.com>
> > > ---
> > >  .../kernel/controllers/cgroup_fj/cgroup_fj_common.sh      | 8 +++++++-
> > >  1 file changed, 7 insertions(+), 1 deletion(-)

> > > diff --git
> > > a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > > b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > > index e866641ba..153d351d7 100755
> > > --- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > > +++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
> > > @@ -77,7 +77,13 @@ common_cleanup()

> > >      cgroup_cleanup

> > > -    [ "$cgroup_version" = "2" ] && ROD echo "-$subsystem" \>
> > "/sys/fs/cgroup/cgroup.subtree_control"
> > > +    if [ "$cgroup_version" = "2" ]; then
> > > +        case "$subsystem" in
> > > +        cpu|io|memory|pids)
> > > +            :;;
> > > +        *) ROD echo "-$subsystem" \>
> > "/sys/fs/cgroup/cgroup.subtree_control";;
> > > +        esac
> > > +    fi
> > >  }

> > >  . cgroup_lib.sh
Petr Vorel Aug. 21, 2024, 7:58 p.m. UTC | #4
Hi Ma,

...
> OK, thx for info, merged!

I'm sorry, I by accident merged v1 instead of v2. Therefore I merged code from
v2 under your name.

Kind regards,
Petr
diff mbox series

Patch

diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
index e866641ba..153d351d7 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_common.sh
@@ -77,7 +77,13 @@  common_cleanup()
 
     cgroup_cleanup
 
-    [ "$cgroup_version" = "2" ] && ROD echo "-$subsystem" \> "/sys/fs/cgroup/cgroup.subtree_control"
+    if [ "$cgroup_version" = "2" ]; then
+        case "$subsystem" in
+        cpu|io|memory|pids)
+            :;;
+        *) ROD echo "-$subsystem" \> "/sys/fs/cgroup/cgroup.subtree_control";;
+        esac
+    fi
 }
 
 . cgroup_lib.sh