When working on the verifier, it is sometimes interesting to know how a particular change affects memory consumption. This patch-set modifies veristat to provide such information. As a collateral, kernel needs an update to make allocations reachable from BPF program load accountable in memcg statistics. Here is a sample output: Program Peak states Peak memory (MiB) --------------- ----------- ----------------- lavd_select_cpu 2153 43 lavd_enqueue 1982 41 lavd_dispatch 3480 28 Technically, this is implemented by creating and entering a new cgroup at the start of veristat execution. The difference between values from cgroup "memory.peak" file before and after bpf_object__load() is used as a metric. To minimize measurements jitter data is collected in megabytes. Changelog: v1: https://lore.kernel.org/bpf/20250605230609.1444980-1-eddyz87@xxxxxxxxx/ v1 -> v2: - a single cgroup, created at the beginning of execution, is now used for measurements (Andrii, Mykyta); - cgroup namespace is not created, as it turned out to be useless (Andrii); - veristat no longer mounts cgroup fs or changes subtree_control, instead it looks for an existing mount point and reports an error if memory.peak file can't be opened (Andrii, Alexei); - if 'mem_peak' statistics is not enabled, veristat skips cgroup setup; - code sharing with cgroup_helpers.c was considered but was decided against to simplify veristat github sync. Eduard Zingerman (2): bpf: include verifier memory allocations in memcg statistics veristat: memory accounting for bpf programs kernel/bpf/btf.c | 15 +- kernel/bpf/verifier.c | 63 +++--- tools/testing/selftests/bpf/veristat.c | 266 ++++++++++++++++++++++++- 3 files changed, 299 insertions(+), 45 deletions(-) -- 2.48.1