From: Brahmajit Das <[email protected]>

bpf_get_root_mem_cgroup(), bpf_mem_cgroup_usage(),
bpf_mem_cgroup_memory_events() and bpf_proactive_reclaim() have no
selftest coverage. Patch 2 adds a memcg_kfuncs test for them, plus
verifier tests for their acquire/release, NULL and program type rules.

Patch 1 moves the alloc_pagecache() helper from arena_memcg to
cgroup_helpers so the new test can share it instead of carrying a copy.

Tested on bpf-next with vmtest.sh (x86_64): all memcg_kfuncs and
memcg_kfuncs_failure subtests pass, and arena_memcg still passes.
---
v3 -> v4:
- Move alloc_pagecache() to cgroup_helpers.c and share it with
  arena_memcg instead of duplicating it (new patch 1). (CI review)

v2 -> v3:
- Drop the upper bound on the bpf_proactive_reclaim() result; only the
  request is clamped and reclaim may overshoot. Fix the commit message
  accordingly. (CI review)
- Print the reason before skipping. (CI review)

v1 -> v2:
- Also check that negative indices are rejected by
  bpf_mem_cgroup_memory_events() and bpf_mem_cgroup_vm_events() (Sashiko)

v3: https://lore.kernel.org/bpf/[email protected]/
v2: https://lore.kernel.org/bpf/[email protected]/
v1: https://lore.kernel.org/bpf/[email protected]/

Brahmajit Das (2):
  selftests/bpf: Move alloc_pagecache() to cgroup_helpers
  selftests/bpf: Add tests for memcg kfuncs

 tools/testing/selftests/bpf/cgroup_helpers.c  |  34 +++
 tools/testing/selftests/bpf/cgroup_helpers.h  |   1 +
 .../selftests/bpf/prog_tests/arena_memcg.c    |  34 ---
 .../selftests/bpf/prog_tests/memcg_kfuncs.c   | 273 ++++++++++++++++++
 .../selftests/bpf/progs/memcg_kfuncs.c        | 106 +++++++
 .../bpf/progs/memcg_kfuncs_failure.c          |  54 ++++
 6 files changed, 468 insertions(+), 34 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/memcg_kfuncs.c
 create mode 100644 tools/testing/selftests/bpf/progs/memcg_kfuncs.c
 create mode 100644 tools/testing/selftests/bpf/progs/memcg_kfuncs_failure.c

-- 
2.56.0


Reply via email to