[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190802081154.30962-1-bjorn.topel@gmail.com>
Date: Fri, 2 Aug 2019 10:11:52 +0200
From: Björn Töpel <bjorn.topel@...il.com>
To: ast@...nel.org, daniel@...earbox.net, netdev@...r.kernel.org
Cc: Björn Töpel <bjorn.topel@...il.com>,
magnus.karlsson@...el.com, bjorn.topel@...el.com,
bruce.richardson@...el.com, songliubraving@...com,
bpf@...r.kernel.org
Subject: [PATCH bpf-next v4 0/2] net: xdp: XSKMAP improvements
This series (v4 and counting) add two improvements for the XSKMAP,
used by AF_XDP sockets.
1. Automatic cleanup when an AF_XDP socket goes out of scope/is
released. Instead of require that the user manually clears the
"released" state socket from the map, this is done
automatically. Each socket tracks which maps it resides in, and
remove itself from those maps at relase. A notable implementation
change, is that the sockets references the map, instead of the map
referencing the sockets. Which implies that when the XSKMAP is
freed, it is by definition cleared of sockets.
2. The XSKMAP did not honor the BPF_EXIST/BPF_NOEXIST flag on insert,
which this patch addresses.
Daniel, I (hopefully...) addressed the issues you found in
[1]. Instead of popping the tracked map, it's simply read. Then, the
socket is removed iff it's the same socket, i.e. no updates has
occurred. There are some code comments in the xsk_delete_from_maps()
function as well.
Thanks,
Björn
[1] https://lore.kernel.org/bpf/2417e1ab-16fa-d3ed-564e-1a50c4cb6717@iogearbox.net/
v1->v2: Fixed deadlock and broken cleanup. (Daniel)
v2->v3: Rebased onto bpf-next
v3->v4: {READ, WRITE}_ONCE consistency. (Daniel)
Socket release/map update race. (Daniel)
Björn Töpel (2):
xsk: remove AF_XDP socket from map when the socket is released
xsk: support BPF_EXIST and BPF_NOEXIST flags in XSKMAP
include/net/xdp_sock.h | 18 ++++++
kernel/bpf/xskmap.c | 130 ++++++++++++++++++++++++++++++++++-------
net/xdp/xsk.c | 48 +++++++++++++++
3 files changed, 175 insertions(+), 21 deletions(-)
--
2.20.1
Powered by blists - more mailing lists