net: introduce noref sk
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest5 patches 7 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | net: add support for noref skb->skinclude/ net/ | +36 | 3 replies | |
| 2/5 | net: allow early demux to fetch noref socketnet/ net/ net/ +3 more | +41 | 1 reply | |
| 3/5 | udp: do not touch socket refcount in early demuxnet/ net/ | +16 | 0 replies | |
| 4/5 | net: add simple socket-like dst cache helpersinclude/ net/ | +28 | 0 replies | |
| 5/5 | udp: perform full socket lookup in early demuxinclude/ net/ net/ | +38 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH net-next 0/5] net: introduce noref sk
This series introduce the infrastructure to store inside the skb a socket pointer without carrying a refcount to the socket.
Such infrastructure is then used in the network receive path - and specifically the early demux operation.
This allows the UDP early demux to perform a full lookup for UDP sockets, with many benefits:
- the UDP early demux code is now much simpler
- the early demux does not hit any performance penalties in case of UDP hash table collision - previously the early demux performed a partial, unsuccesful, lookup
- early demux is now operational also for unconnected sockets.
This infrastrcture will be used in follow-up series to allow dst caching for unconnected UDP sockets, and than to extend the same features to TCP listening sockets.
Paolo Abeni (5):
net: add support for noref skb->sk
net: allow early demux to fetch noref socket
udp: do not touch socket refcount in early demux
net: add simple socket-like dst cache helpers
udp: perform full socket lookup in early demux
include/linux/skbuff.h | 30 +++++++++++++++ include/linux/udp.h | 2 + include/net/dst.h | 12 ++++++ net/core/dst.c | 16 ++++++++ net/core/sock.c | 6 +++ net/ipv4/ip_input.c | 12 ++++++ net/ipv4/ipmr.c | 18 +++++++-- net/ipv4/netfilter/nf_dup_ipv4.c | 3 ++ net/ipv4/udp.c | 80 ++++++++++++++++------------------------ net/ipv6/ip6_input.c | 7 +++- net/ipv6/netfilter/nf_dup_ipv6.c | 3 ++ net/ipv6/udp.c | 67 ++++++++++----------------------- net/netfilter/nf_queue.c | 3 ++ 13 files changed, 159 insertions(+), 100 deletions(-)
Signature · 1 line
2.13.5