Message ID | 20200622100506.4285-1-liwang@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2] tst_cgroup: fix tst_cgroup_version to cover more situations | expand |
On Mon, Jun 22, 2020 at 6:05 PM Li Wang <liwang@redhat.com> wrote: > * system doesn't support any cgroup(v1, v2): TCONF > * system only support cgroup v1: choose v1 > * system only support cgroup v2: choose v2 > * system support v1 & v2 but mounting v1: chosse v1 > * systep support v1 & v2 but mounting v2: choose v2 > > Signed-off-by: Li Wang <liwang@redhat.com> > --- > lib/tst_cgroup.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c > index 0118dd7b2..010baa69e 100644 > --- a/lib/tst_cgroup.c > +++ b/lib/tst_cgroup.c > @@ -38,18 +38,19 @@ static int tst_cgroup_check(const char *cgroup) > > enum tst_cgroup_ver tst_cgroup_version(void) > { > - if (tst_cgroup_check("cgroup2")) { > - if (!tst_is_mounted("cgroup2") && tst_is_mounted("cgroup")) > - return TST_CGROUP_V1; > - else > - return TST_CGROUP_V2; > - } > + enum tst_cgroup_ver cg_ver; > > if (tst_cgroup_check("cgroup")) > - return TST_CGROUP_V1; > + cg_ver = TST_CGROUP_V1; > Ah sorry, it seems we shouldn't searching "cgroup" first, because that will be misled by "cgroup2" too. Plz ignore this patch This is a little bit tricky, let me think over. > + > + if (tst_cgroup_check("cgroup2")) > + if (!cg_ver || tst_is_mounted("cgroup2")) > + cg_ver = TST_CGROUP_V2; > + > + if (!cg_ver) > + tst_brk(TCONF, "Cgroup is not configured"); > > - tst_brk(TCONF, "Cgroup is not configured"); > - return TST_CGROUP_V1; /* fix -Werror=return-type */ > + return cg_ver; > } > > static void tst_cgroup1_mount(const char *name, const char *option, > -- > 2.21.1 > > > -- > Mailing list info: https://lists.linux.it/listinfo/ltp > >
diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c index 0118dd7b2..010baa69e 100644 --- a/lib/tst_cgroup.c +++ b/lib/tst_cgroup.c @@ -38,18 +38,19 @@ static int tst_cgroup_check(const char *cgroup) enum tst_cgroup_ver tst_cgroup_version(void) { - if (tst_cgroup_check("cgroup2")) { - if (!tst_is_mounted("cgroup2") && tst_is_mounted("cgroup")) - return TST_CGROUP_V1; - else - return TST_CGROUP_V2; - } + enum tst_cgroup_ver cg_ver; if (tst_cgroup_check("cgroup")) - return TST_CGROUP_V1; + cg_ver = TST_CGROUP_V1; + + if (tst_cgroup_check("cgroup2")) + if (!cg_ver || tst_is_mounted("cgroup2")) + cg_ver = TST_CGROUP_V2; + + if (!cg_ver) + tst_brk(TCONF, "Cgroup is not configured"); - tst_brk(TCONF, "Cgroup is not configured"); - return TST_CGROUP_V1; /* fix -Werror=return-type */ + return cg_ver; } static void tst_cgroup1_mount(const char *name, const char *option,
* system doesn't support any cgroup(v1, v2): TCONF * system only support cgroup v1: choose v1 * system only support cgroup v2: choose v2 * system support v1 & v2 but mounting v1: chosse v1 * systep support v1 & v2 but mounting v2: choose v2 Signed-off-by: Li Wang <liwang@redhat.com> --- lib/tst_cgroup.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)