On Wed, Mar 8, 2023 at 12:16 AM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > 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: yep, it was fixed in bpf-next: 2d5bcdcda879 ("bpf: Increase size of BTF_ID_LIST without CONFIG_DEBUG_INFO_BTF again") > > ../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.