From: Petr Vorel <pvorel@suse.cz>
To: Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v5 10/18] controllers: Expand cgroup_lib shell library
Date: Tue, 26 Jul 2022 15:12:26 +0200 [thread overview]
Message-ID: <Yt/oOuaJU3ExV5f9@pevik> (raw)
In-Reply-To: <d2355625a3b0bd7cac07fc2e80098ca2c59d10b1.1658433280.git.luke.nowakowskikrijger@canonical.com>
Hi Luke,
...
> +# Gets the cgroup version of the given controller
> +# USAGE: cgroup_get_version CONTROLLER
> +# RETURNS: "1" if version 1 and "2" if version 2
> +# Must call cgroup_require before calling
> +cgroup_get_version()
> {
> - local subsystem=$1
> - local mntpoint
> + local ctrl="$1"
> + local version
> - [ $# -eq 0 ] && tst_brk TBROK "get_cgroup_mountpoint: subsystem not defined"
> + [ $# -eq 0 ] && tst_brk TBROK "cgroup_get_version: controller not defined"
NOTE: this will always pass, because you pass variable in ""
(thus $1 = "" and $# = 1):
cgroup_get_task_list()
{
local ctrl="$1"
version=$(cgroup_get_version "$ctrl")
> + [ "$_cgroup_state" = "" ] && tst_brk TBROK "cgroup_get_version: No previous state found. Forgot to call cgroup_require?"
> - mntpoint=$(grep cgroup /proc/mounts | grep -w $subsystem | awk '{ print $2 }')
> - [ -z "$mntpoint" ] && return 1
> + version=$(echo "$_cgroup_state" | grep -w "^$ctrl" | awk '{ print $2 }')
> + [ "$version" = "" ] && tst_brk TBROK "cgroup_get_version: Could not find controller $ctrl"
> +
> + echo "$version"
> - echo $mntpoint
> return 0
> }
...
> +# Mounts and configures the given controller
> +# USAGE: cgroup_require CONTROLLER
> +cgroup_require()
> +{
> + local ctrl="$1"
> +
> + [ $# -eq 0 ] && tst_brk TBROK "cgroup_require: controller not defined"
> +
> + [ ! -f /proc/cgroups ] && tst_brk TCONF "Kernel does not support control groups"
> +
> + _cgroup_state=$(tst_cgctl require "$ctrl" $$)
> +
> + if [ $? -eq 32 ]; then
> + tst_brk TCONF "'tst_cgctl require' exited. Controller is probably not available?"
> + fi
> +
> + if [ $? -ne 0 ]; then
> + tst_brk TBROK "'tst_cgctl require' exited."
> + fi
FYI if cgroup_require is called from cleanup function tst_brk does not exit the
code:
tst_brk()
{
local res=$1
shift
if [ "$TST_DO_EXIT" = 1 ]; then
tst_res TWARN "$@"
return
fi
tst_res "$res" "$@"
_tst_do_exit
}
IMHO that means that $? became 0 even it was previously 32.
It's always safer to save $? into local variable if needed to store exit code
(otherwise using if, e.g. "if ! foo; then" is preferred).
NOTE: Maybe at this point it might be safer if you post next version
where you do fixes yourself. I'll try to review the rest of the shell scripts
today (C code looks correct to me).
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2022-07-26 13:12 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-21 20:52 [LTP] [PATCH v5 00/18] Expand Cgroup lib and modify controller tests Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v3 01/18] API/cgroup: Modify tst_cg_print_config for parsing and consumption Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH 02/18] API/cgroup: Add option for specific pid to tst_cg_opts Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v2 03/18] API/cgroup: Add cgroup_find_root helper function Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH 04/18] API/cgroup: Add CTRL_NAME_MAX define Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v2 05/18] tst_test_macros: Add TST_TO_STR and TST_STR macro Luke Nowakowski-Krijger
2022-07-26 14:44 ` Petr Vorel
2022-07-21 20:52 ` [LTP] [PATCH v5 06/18] API/cgroup: Implement tst_cg_load_config Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v3 07/18] API/cgroup: Add more controllers to tst_cgroup Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v2 08/18] API/cgroup: refuse to mount blkio when io controller is mounted Luke Nowakowski-Krijger
2022-07-26 14:40 ` Petr Vorel
2022-07-21 20:52 ` [LTP] [PATCH v2 09/18] testcases/lib: Implement tst_cgctl binary Luke Nowakowski-Krijger
2022-07-26 12:48 ` Petr Vorel
2022-07-21 20:52 ` [LTP] [PATCH v5 10/18] controllers: Expand cgroup_lib shell library Luke Nowakowski-Krijger
2022-07-26 13:12 ` Petr Vorel [this message]
2022-07-26 19:24 ` Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v3 11/18] controllers: Update cgroup_fj_* to use newer cgroup lib and test lib Luke Nowakowski-Krijger
2022-07-25 11:41 ` Richard Palethorpe
2022-07-26 6:36 ` Li Wang
2022-07-21 20:52 ` [LTP] [PATCH v3 12/18] controllers: Update memcg_control_test to newer test lib and cgroup lib Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v3 13/18] controllers: Update memcg/regression/* to new test " Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v2 14/18] controllers: Update memcg_stress_test to use newer " Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v2 15/18] controllers: update memcg/functional " Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v3 16/18] controllers: Update pids.sh " Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v2 17/18] controllers: update cpuset_regression_test.sh " Luke Nowakowski-Krijger
2022-07-21 20:52 ` [LTP] [PATCH v3 18/18] controllers: update cgroup_regression_test " Luke Nowakowski-Krijger
2022-07-26 3:33 ` Li Wang
2022-07-25 8:14 ` [LTP] [PATCH v5 00/18] Expand Cgroup lib and modify controller tests Petr Vorel
2022-07-25 20:25 ` Luke Nowakowski-Krijger
2022-07-26 13:00 ` Petr Vorel
2022-07-26 6:10 ` Li Wang
2022-07-26 8:52 ` Richard Palethorpe
2022-07-26 16:04 ` Petr Vorel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yt/oOuaJU3ExV5f9@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
--cc=luke.nowakowskikrijger@canonical.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.