[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53906C87-8AF9-4048-8CA0-AE38C023AEF7@flugsvamp.com>
Date: Mon, 08 Jul 2019 08:10:28 -0700
From: "Jonathan Lemon" <jlemon@...gsvamp.com>
To: "Toke Høiland-Jørgensen" <toke@...hat.com>
Cc: "Daniel Borkmann" <daniel@...earbox.net>,
"Alexei Starovoitov" <ast@...nel.org>, netdev@...r.kernel.org,
"David Miller" <davem@...emloft.net>,
"Jesper Dangaard Brouer" <brouer@...hat.com>,
"Jakub Kicinski" <jakub.kicinski@...ronome.com>,
"Björn Töpel" <bjorn.topel@...il.com>
Subject: Re: [PATCH bpf-next 0/3] xdp: Add devmap_hash map type
On 5 Jul 2019, at 10:56, Toke Høiland-Jørgensen wrote:
> This series adds a new map type, devmap_hash, that works like the
> existing
> devmap type, but using a hash-based indexing scheme. This is useful
> for the use
> case where a devmap is indexed by ifindex (for instance for use with
> the routing
> table lookup helper). For this use case, the regular devmap needs to
> be sized
> after the maximum ifindex number, not the number of devices in it. A
> hash-based
> indexing scheme makes it possible to size the map after the number of
> devices it
> should contain instead.
This device hash map is sized at NETDEV_HASHENTRIES == 2^8 == 256. Is
this actually
smaller than an array? What ifindex values are you seeing?
--
Jonathan
>
> This was previously part of my patch series that also turned the
> regular
> bpf_redirect() helper into a map-based one; for this series I just
> pulled out
> the patches that introduced the new map type.
>
> Changelog:
>
> Changes to these patches since the previous series:
>
> - Rebase on top of the other devmap changes (makes this one simpler!)
> - Don't enforce key==val, but allow arbitrary indexes.
> - Rename the type to devmap_hash to reflect the fact that it's just a
> hashmap now.
>
> ---
>
> Toke Høiland-Jørgensen (3):
> include/bpf.h: Remove map_insert_ctx() stubs
> xdp: Refactor devmap allocation code for reuse
> xdp: Add devmap_hash map type for looking up devices by hashed
> index
>
>
> include/linux/bpf.h | 11 -
> include/linux/bpf_types.h | 1
> include/trace/events/xdp.h | 3
> include/uapi/linux/bpf.h | 7 -
> kernel/bpf/devmap.c | 325
> ++++++++++++++++++++++++++-----
> kernel/bpf/verifier.c | 2
> net/core/filter.c | 9 +
> tools/bpf/bpftool/map.c | 1
> tools/include/uapi/linux/bpf.h | 7 -
> tools/lib/bpf/libbpf_probes.c | 1
> tools/testing/selftests/bpf/test_maps.c | 16 ++
> 11 files changed, 316 insertions(+), 67 deletions(-)
Powered by blists - more mailing lists