[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191108145738.GC36440@gmail.com>
Date: Fri, 8 Nov 2019 06:57:38 -0800
From: William Tu <u9012063@...il.com>
To: Magnus Karlsson <magnus.karlsson@...el.com>
Cc: bjorn.topel@...el.com, ast@...nel.org, daniel@...earbox.net,
netdev@...r.kernel.org, jonathan.lemon@...il.com,
bpf@...r.kernel.org
Subject: Re: [PATCH bpf-next 0/5] Extend libbpf to support shared umems and
Rx|Tx-only sockets
On Thu, Nov 07, 2019 at 06:47:35PM +0100, Magnus Karlsson wrote:
> This patch set extends libbpf and the xdpsock sample program to
> demonstrate the shared umem mode (XDP_SHARED_UMEM) as well as Rx-only
> and Tx-only sockets. This in order for users to have an example to use
> as a blue print and also so that these modes will be exercised more
> frequently.
>
> Note that the user needs to supply an XDP program with the
> XDP_SHARED_UMEM mode that distributes the packets over the sockets
> according to some policy. There is an example supplied with the
> xdpsock program, but there is no default one in libbpf similarly to
> when XDP_SHARED_UMEM is not used. The reason for this is that I felt
> that supplying one that would work for all users in this mode is
> futile. There are just tons of ways to distribute packets, so whatever
> I come up with and build into libbpf would be wrong in most cases.
>
Hi Magnus,
Thanks for the patch.
I look at the sample code and it's sharing a umem among multiple queues in
the same netdev. Is it possible to shared one umem across multiple netdevs?
For example in OVS, one might create multiple tap/veth devices (using skb-mode
or native-mode). And I want to save memory by having just one shared umem for
these devices.
Thanks
--William
> This patch has been applied against commit 30ee348c1267 ("Merge branch 'bpf-libbpf-fixes'")
>
> Structure of the patch set:
>
> Patch 1: Adds shared umem support to libbpf
> Patch 2: Shared umem support and example XPD program added to xdpsock sample
> Patch 3: Adds Rx-only and Tx-only support to libbpf
> Patch 4: Uses Rx-only sockets for rxdrop and Tx-only sockets for txpush in
> the xdpsock sample
> Patch 5: Add documentation entries for these two features
>
> Thanks: Magnus
>
> Magnus Karlsson (5):
> libbpf: support XDP_SHARED_UMEM with external XDP program
> samples/bpf: add XDP_SHARED_UMEM support to xdpsock
> libbpf: allow for creating Rx or Tx only AF_XDP sockets
> samples/bpf: use Rx-only and Tx-only sockets in xdpsock
> xsk: extend documentation for Rx|Tx-only sockets and shared umems
>
> Documentation/networking/af_xdp.rst | 28 +++++--
> samples/bpf/Makefile | 1 +
> samples/bpf/xdpsock.h | 11 +++
> samples/bpf/xdpsock_kern.c | 24 ++++++
> samples/bpf/xdpsock_user.c | 158 ++++++++++++++++++++++++++----------
> tools/lib/bpf/xsk.c | 32 +++++---
> 6 files changed, 195 insertions(+), 59 deletions(-)
> create mode 100644 samples/bpf/xdpsock.h
> create mode 100644 samples/bpf/xdpsock_kern.c
>
> --
> 2.7.4
Powered by blists - more mailing lists