On Tue, May 10, 2022 at 2:17 PM Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx> wrote: > > In an effort to actually test the refcounting logic at runtime, add a > refcount_t member to prog_test_ref_kfunc and use it in selftests to > verify and test the whole logic more exhaustively. > > To ensure reading the count to verify it remains stable, make > prog_test_ref_kfunc a per-CPU variable, so that inside a BPF program the > count can be read reliably based on number of acquisitions made. Then, > pairing them with releases and reading from the global per-CPU variable > will allow verifying whether release operations put the refcount. The patches look good, but the per-cpu part is a puzzle. The test is not parallel. Everything looks sequential and there are no races. It seems to me if it was static struct prog_test_ref_kfunc prog_test_struct = {..}; and none of [bpf_]this_cpu_ptr() the test would work the same way. What am I missing?