[LTP] [PATCH 00/16] Expand Cgroup lib and modify controller tests

Richard Palethorpe rpalethorpe@suse.de
Mon Jan 24 10:40:20 CET 2022


Hello Luke,

Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com> writes:

> This patchset aims to expand the cgroup_lib shell library to simplify
> and centralize the whole mounting and cleanup process that can get
> rather confusing and redundant when writing cgroup controller tests from
> a shell environment. This is done by having the shell library make calls
> to the C cgroup API from a binary utility. 
>
> In this patch set there are a few tests that have been extensively
> rewritten to work with the new test API and to use the new functionality
> from the cgroup lib. Because the test Cgroup lib handles mounting for v1
> and v2 controllers, some tests were modified to also work under cgroup
> v2. Some tests that were written for v1 controller also effictively test
> v2 controllers, while others were written to test v2 controllers in the
> spirit of the test or skipped outright.

Thanks I am really happy to see this!

It would be nice to see the tests rewritten in C, but if this works,
then perhaps we can get many more tests working on both V1 and V2 quite
quickly. Including perhaps some kernel selftests (IIRC there are some in
shell as well).

>
> Luke Nowakowski-Krijger (16):
>   API/cgroup: Modify tst_cgroup_print_config for easier parsing and
>     consumption
>   API/cgroup: Add option for specific pid to tst_cgroup_opts
>   API/cgroup: Add cgroup_find_root helper function
>   API/cgroup: Implement tst_cgroup_load_config()
>   API/cgroup: Add more controllers to tst_cgroup
>   API/cgroup: Change to TWARN when v2 controllers change
>   testcases/lib: Implement tst_cgctl binary
>   controllers: Expand cgroup_lib shell library
>   controllers: Update cgroup_fj_* to use newer cgroup lib and test lib
>   controllers: Update memcg_control_test to newer test lib and cgroup
>     lib
>   controllers: Update memcg/regression/* to new test and cgroup lib
>   controllers: Update memcg_stress_test to use newer cgroup lib
>   controllers: update memcg/functional to use newer cgroup lib
>   controllers: Update pids.sh to use newer cgroup lib
>   controllers: update cpuset_regression_test.sh to use newer cgroup lib
>   controllers: update cgroup_regression_test to use newer cgroup lib
>
>  include/tst_cgroup.h                          |   7 +-
>  lib/tst_cgroup.c                              | 314 +++++++++++++++++-
>  .../cgroup/cgroup_regression_test.sh          |  17 +-
>  .../controllers/cgroup_fj/cgroup_fj_common.sh | 105 ++----
>  .../cgroup_fj/cgroup_fj_function.sh           | 169 ++++++----
>  .../controllers/cgroup_fj/cgroup_fj_proc.c    |  24 +-
>  .../controllers/cgroup_fj/cgroup_fj_stress.sh | 168 +++++-----
>  testcases/kernel/controllers/cgroup_lib.sh    | 128 +++++--
>  .../cpuset/cpuset_regression_test.sh          |  26 +-
>  .../controllers/memcg/control/mem_process.c   |  28 +-
>  .../memcg/control/memcg_control_test.sh       | 150 +++------
>  .../memcg/functional/memcg_force_empty.sh     |   2 +-
>  .../controllers/memcg/functional/memcg_lib.sh |  54 +--
>  .../memcg/regression/memcg_regression_test.sh | 202 +++++------
>  .../memcg/regression/memcg_test_1.c           |  40 +--
>  .../memcg/regression/memcg_test_2.c           |  24 +-
>  .../memcg/regression/memcg_test_3.c           |  35 +-
>  .../memcg/regression/memcg_test_4.c           |  24 +-
>  .../memcg/regression/memcg_test_4.sh          |  50 ++-
>  .../memcg/stress/memcg_stress_test.sh         |  32 +-
>  testcases/kernel/controllers/pids/pids.sh     |  65 +---
>  testcases/lib/Makefile                        |   2 +-
>  testcases/lib/tst_cgctl.c                     |  69 ++++
>  23 files changed, 966 insertions(+), 769 deletions(-)
>  create mode 100644 testcases/lib/tst_cgctl.c


-- 
Thank you,
Richard.


More information about the ltp mailing list