On Wed, Apr 5, 2023 at 5:40 PM Daniel Rosenberg <drosen@xxxxxxxxxx> wrote: > > These patches relax a few verifier requirements around dynptrs. > > I was unable to test the patch in 0003 due to unrelated issues compiling the > bpf selftests, but did run an equivalent local test program. > > This is the issue I was running into: > progs/cgrp_ls_attach_cgroup.c:17:15: error: use of undeclared identifier 'BPF_MAP_TYPE_CGRP_STORAGE'; did you mean 'BPF_MAP_TYPE_CGROUP_STORAGE'? > __uint(type, BPF_MAP_TYPE_CGRP_STORAGE); > ^~~~~~~~~~~~~~~~~~~~~~~~~ > BPF_MAP_TYPE_CGROUP_STORAGE > /ssd/kernel/fuse-bpf/tools/testing/selftests/bpf/tools/include/bpf/bpf_helpers.h:13:39: note: expanded from macro '__uint' > #define __uint(name, val) int (*name)[val] > ^ > /ssd/kernel/fuse-bpf/tools/testing/selftests/bpf/tools/include/vmlinux.h:27892:2: note: 'BPF_MAP_TYPE_CGROUP_STORAGE' declared here > BPF_MAP_TYPE_CGROUP_STORAGE = 19, > ^ > 1 error generated. It is expected that you build the freshest vmlinux image before building selftests, because we generate vmlinux.h from it. In your case we generated vmlinux.h from your system-wide /sys/kernel/btf/vmlinux BTF information, which doesn't yet have latest UAPI enums. > > Daniel Rosenberg (3): > bpf: verifier: Accept dynptr mem as mem in helpers > bpf: Allow NULL buffers in bpf_dynptr_slice(_rw) > selftests/bpf: Test allowing NULL buffer in dynptr slice > > Documentation/bpf/kfuncs.rst | 23 ++++++++++++- > kernel/bpf/helpers.c | 32 ++++++++++++------- > kernel/bpf/verifier.c | 21 ++++++++++++ > .../testing/selftests/bpf/prog_tests/dynptr.c | 1 + > .../selftests/bpf/progs/dynptr_success.c | 21 ++++++++++++ > 5 files changed, 85 insertions(+), 13 deletions(-) > > > base-commit: 5af607a861d43ffff830fc1890033e579ec44799 > -- > 2.40.0.577.gac1e443424-goog >