Hi all, This small series adds practical test coverage for the dmem cgroup controller.
The motivation came from following the recent dmem API discussion in thread [1]. That discussion considered changing the dmem API and adding a new knob. Currently there are no dedicated tests covering dmem behaviour, which makes such changes riskier. Adding selftests has an additional challenge: dmem charging paths are driver-driven today, so regression testing is harder unless a suitable driver is present in the test environment. This series addresses that by adding: - a kernel-side selftest helper module to trigger charge/uncharge from userspace in a controlled way, - cgroup selftests covering dmem accounting and protection semantics (including dmem.max enforcement and byte-granularity checks), - a virtme-based VM runner for repeatable execution of the dmem tests. The goal is to make dmem behavior easier to validate when evolving the API and implementation, while keeping tests deterministic and driver-independent. Thanks. [1] - https://lore.kernel.org/all/aZoHfloupKvF2oSu@fedora/ Signed-off-by: Albert Esteve <[email protected]> --- Changes in v4: - Fix charged_pool leak in dmem_selftest_init() - Replace ssh-based VM approach in vmtest-dmem.sh with vng --exec - Add main() wrapper to vmtest-dmem.sh - Other small fixes suggested by Sashiko - Link to v3: https://lore.kernel.org/r/[email protected] Changes in v3: - Set charged flag on unexpected over-limit charge success. - Add CONFIG_DMEM_SELFTEST=m to selftest config. - Simplify -v to a boolean; single -v was a no-op. - Unquote kernel_opt to avoid empty-string arg to vng. - Document -b in usage() output. - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Fix debugfs_create_dir() error check - Fix module teardown race: call dmem_selftest_remove() before uncharging so debugfs files are torn down - Use IS_ERR_OR_NULL() in selftest() sanity check - Add CONFIG_CGROUP_DMEM=y to the cgroup selftest config - Replace config-file parsing in check_guest_requirements() with a direct check of /sys/fs/cgroup/cgroup.controllers - Add new patch 4 (from Eric Chanudet): vmtest-dmem.sh -b flag to configure and build a local kernel tree - Link to v1: https://lore.kernel.org/r/[email protected] --- Albert Esteve (4): cgroup: Add dmem_selftest module selftests: cgroup: Add dmem selftest coverage selftests: cgroup: Add vmtest-dmem runner script selftests: cgroup: handle vmtest-dmem -b to test locally built kernel init/Kconfig | 12 + kernel/cgroup/Makefile | 1 + kernel/cgroup/dmem_selftest.c | 198 +++++++++++ tools/testing/selftests/cgroup/.gitignore | 1 + tools/testing/selftests/cgroup/Makefile | 4 +- tools/testing/selftests/cgroup/config | 2 + tools/testing/selftests/cgroup/test_dmem.c | 492 ++++++++++++++++++++++++++ tools/testing/selftests/cgroup/vmtest-dmem.sh | 177 +++++++++ 8 files changed, 886 insertions(+), 1 deletion(-) --- base-commit: 70eda68668d1476b459b64e69b8f36659fa9dfa8 change-id: 20260318-kunit_cgroups-7fb0b9e64017 Best regards, -- Albert Esteve <[email protected]>

