Message ID | 156415721066.13581.737309854787645225.stgit@alrua-x1 |
---|---|
Headers | show |
Series | xdp: Add devmap_hash map type | expand |
On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <toke@redhat.com> 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 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: > > v5: > > - Dynamically set the number of hash buckets by rounding up max_entries to the > nearest power of two (mirroring the regular hashmap), as suggested by Jesper. fyi I'm waiting for Jesper to review this new version.
On Fri, Jul 26, 2019 at 7:26 PM Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote: > > On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <toke@redhat.com> 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 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: > > > > v5: > > > > - Dynamically set the number of hash buckets by rounding up max_entries to the > > nearest power of two (mirroring the regular hashmap), as suggested by Jesper. > > fyi I'm waiting for Jesper to review this new version. Now applied. Toke, please consider adding proper selftest for it. fd = bpf_create_map(BPF_MAP_TYPE_DEVMAP_HASH, sizeof(key), sizeof(value), 2, 0); if (fd < 0) { printf("Failed to create devmap_hash '%s'!\n", strerror(errno)); exit(1); } close(fd); is not really a test.
Alexei Starovoitov <alexei.starovoitov@gmail.com> writes: > On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <toke@redhat.com> 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 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: >> >> v5: >> >> - Dynamically set the number of hash buckets by rounding up max_entries to the >> nearest power of two (mirroring the regular hashmap), as suggested by Jesper. > > fyi I'm waiting for Jesper to review this new version. Ping Jesper? :) -Toke
On Thu, Aug 8, 2019 at 12:43 PM Toke Høiland-Jørgensen <toke@redhat.com> wrote: > > Alexei Starovoitov <alexei.starovoitov@gmail.com> writes: > > > On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <toke@redhat.com> 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 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: > >> > >> v5: > >> > >> - Dynamically set the number of hash buckets by rounding up max_entries to the > >> nearest power of two (mirroring the regular hashmap), as suggested by Jesper. > > > > fyi I'm waiting for Jesper to review this new version. > > Ping Jesper? :) Toke, the patch set has been merged to net-next. https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=d3406913561c322323ec2898cc58f55e79786be7 > > -Toke
On Thu, 8 Aug 2019 12:57:05 -0700 Y Song <ys114321@gmail.com> wrote: > On Thu, Aug 8, 2019 at 12:43 PM Toke Høiland-Jørgensen <toke@redhat.com> wrote: > > > > Alexei Starovoitov <alexei.starovoitov@gmail.com> writes: > > > > > On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <toke@redhat.com> 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 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: > > >> > > >> v5: > > >> > > >> - Dynamically set the number of hash buckets by rounding up max_entries to the > > >> nearest power of two (mirroring the regular hashmap), as suggested by Jesper. > > > > > > fyi I'm waiting for Jesper to review this new version. > > > > Ping Jesper? :) > > Toke, the patch set has been merged to net-next. > https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=d3406913561c322323ec2898cc58f55e79786be7 > Yes, and I did review this... :-)
Jesper Dangaard Brouer <brouer@redhat.com> writes: > On Thu, 8 Aug 2019 12:57:05 -0700 > Y Song <ys114321@gmail.com> wrote: > >> On Thu, Aug 8, 2019 at 12:43 PM Toke Høiland-Jørgensen <toke@redhat.com> wrote: >> > >> > Alexei Starovoitov <alexei.starovoitov@gmail.com> writes: >> > >> > > On Fri, Jul 26, 2019 at 9:06 AM Toke Høiland-Jørgensen <toke@redhat.com> 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 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: >> > >> >> > >> v5: >> > >> >> > >> - Dynamically set the number of hash buckets by rounding up max_entries to the >> > >> nearest power of two (mirroring the regular hashmap), as suggested by Jesper. >> > > >> > > fyi I'm waiting for Jesper to review this new version. >> > >> > Ping Jesper? :) >> >> Toke, the patch set has been merged to net-next. >> https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=d3406913561c322323ec2898cc58f55e79786be7 >> > > Yes, and I did review this... :-) Oops, my bad; seems I accidentally muted this thread and didn't see Jesper's review and Alexei's message about merging it. Sorry about that... -Toke