[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200530163643.290eb18c@carbon>
Date: Sat, 30 May 2020 16:36:43 +0200
From: Jesper Dangaard Brouer <brouer@...hat.com>
To: Andrii Nakryiko <andrii.nakryiko@...il.com>
Cc: David Ahern <dsahern@...il.com>, bpf <bpf@...r.kernel.org>,
Networking <netdev@...r.kernel.org>,
Daniel Borkmann <borkmann@...earbox.net>,
Alexei Starovoitov <alexei.starovoitov@...il.com>,
brouer@...hat.com
Subject: Re: [PATCH bpf-next RFC 2/3] bpf: devmap dynamic map-value storage
area based on BTF
On Sat, 30 May 2020 00:19:50 -0700
Andrii Nakryiko <andrii.nakryiko@...il.com> wrote:
> On Fri, May 29, 2020 at 8:59 AM Jesper Dangaard Brouer
> <brouer@...hat.com> wrote:
> >
> > The devmap map-value can be read from BPF-prog side, and could be used for a
> > storage area per device. This could e.g. contain info on headers that need
>
> If BPF program needs a storage area per device, why can't it just use
> a separate map or just plain array (both keyed by ifindex) to store
> whatever it needs per-device? It's not clear why this flexibility and
> complexity is needed from the description above.
Sorry I though it was obvious, it is for performance reasons and to
reduce the number of maps needed. We do a lookup in the devmap anyhow,
thus this memory will be cache-hot. Doing another lookup in a separate
map, which is not guaranteed to be cache-hot, will be wasting cycles.
> > to be added when packet egress this device.
> >
> > This patchset adds a dynamic storage member to struct bpf_devmap_val. More
> > importantly the struct bpf_devmap_val is made dynamic via leveraging and
> > requiring BTF for struct sizes above 4. The only mandatory struct member is
> > 'ifindex' with a fixed offset of zero.
> >
> > Signed-off-by: Jesper Dangaard Brouer <brouer@...hat.com>
> > ---
> > kernel/bpf/devmap.c | 216 ++++++++++++++++++++++++++++++++++++++++++++-------
> > 1 file changed, 185 insertions(+), 31 deletions(-)
> >
>
> [...]
>
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
Powered by blists - more mailing lists