On Wed, 1 Mar 2023 07:49:43 -0800 Joanne Koong wrote: > This patchset is the 2nd in the dynptr series. The 1st can be found here [0]. > > This patchset adds skb and xdp type dynptrs, which have two main benefits for > packet parsing: > * allowing operations on sizes that are not statically known at > compile-time (eg variable-sized accesses). > * more ergonomic and less brittle iteration through data (eg does not need > manual if checking for being within bounds of data_end) > > When comparing the differences in runtime for packet parsing without dynptrs > vs. with dynptrs, there is no noticeable difference. Patch 9 contains more > details as well as examples of how to use skb and xdp dynptrs. Oddly I see an error trying to build net-next with clang 15.0.7, but I'm 90% sure that it built yesterday, has anyone seen: ../kernel/bpf/verifier.c:10298:24: error: array index 16 is past the end of the array (which contains 16 elements) [-Werror,-Warray-bounds] meta.func_id == special_kfunc_list[KF_bpf_dynptr_slice_rdwr]) { ^ ~~~~~~~~~~~~~~~~~~~~~~~~ ../kernel/bpf/verifier.c:9150:1: note: array 'special_kfunc_list' declared here BTF_ID_LIST(special_kfunc_list) ^ ../include/linux/btf_ids.h:207:27: note: expanded from macro 'BTF_ID_LIST' #define BTF_ID_LIST(name) static u32 __maybe_unused name[16]; ^ 1 error generated.