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

Luke Nowakowski-Krijger luke.nowakowskikrijger@canonical.com
Thu Apr 28 22:39:25 CEST 2022


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.

Luke Nowakowski-Krijger (19):
  API/cgroup: Modify tst_cg_print_config for parsing and consumption
  API/cgroup: Add option for specific pid to tst_cg_opts
  API/cgroup: Add cgroup_find_root helper function
  API/cgroup: Add CTRL_NAME_MAX define
  tst_test_macros: Add TST_TOSTR macro
  API/cgroup: Implement tst_cg_load_config
  API/cgroup: Add more controllers to tst_cgroup
  API/cgroup: refuse to mount blkio when io controller is mounted
  testcases/lib: Implement tst_cgctl binary
  testcases/lib: Add tst_flag2mask function
  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                          |  17 +-
 include/tst_test_macros.h                     |   3 +
 lib/tst_cgroup.c                              | 215 +++++++++++++++++-
 .../cgroup/cgroup_regression_test.sh          |  31 +--
 .../controllers/cgroup_fj/cgroup_fj_common.sh | 113 +++------
 .../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    | 141 ++++++++++--
 .../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           |  38 ++--
 .../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     |  67 +-----
 testcases/lib/Makefile                        |   2 +-
 testcases/lib/tst_cgctl.c                     |  87 +++++++
 testcases/lib/tst_test.sh                     |  13 ++
 25 files changed, 927 insertions(+), 793 deletions(-)
 create mode 100644 testcases/lib/tst_cgctl.c

-- 
2.32.0



More information about the ltp mailing list