[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEf4BzZzqFW=YBkK1+PKyXPhVmhFSqU=+OHJ6_1USK22UoKEvQ@mail.gmail.com>
Date: Wed, 8 Mar 2023 09:08:09 -0800
From: Andrii Nakryiko <andrii.nakryiko@...il.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Joanne Koong <joannelkoong@...il.com>, bpf@...r.kernel.org,
martin.lau@...nel.org, andrii@...nel.org, ast@...nel.org,
memxor@...il.com, daniel@...earbox.net, netdev@...r.kernel.org,
toke@...nel.org
Subject: Re: [PATCH v13 bpf-next 00/10] Add skb + xdp dynptrs
On Wed, Mar 8, 2023 at 12:16 AM Jakub Kicinski <kuba@...nel.org> 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.
Powered by blists - more mailing lists