Skip to content

UDP: introduce RX skb cache

Paolo Abeni netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 11 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2udp: if the rx queue is full, free the skb in __udp_enqueue_schedule_skb()net/ipv4/udp.c net/ipv6/udp.c+1 -20 replies
2/2udp: implement and use per cpu rx skbs cachenet/ipv4/udp.c+159 -111 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH net-next 0/2] UDP: introduce RX skb cache

The goal of this series is to improve UDP performance in the RX path, that got worse when spectre/meltdown mithigations were introduced.

The main idea is to move almost entirely the cost of skb handling from the receiver process context into the BH processing, leveraging, for small packets, a newly introduced, BH managed, skb cache. This is somewhat similar to copy-break and the implementation details are in the main patch.

Overall this gives a performance improvement up to 20% in for UDP flood stress test and above 5% for real-life DNS performance tests.

Paolo Abeni (2):
udp: if the rx queue is full, free the skb in
__udp_enqueue_schedule_skb()
udp: implement and use per cpu rx skbs cache

 net/ipv4/udp.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 net/ipv6/udp.c |   1 -
 2 files changed, 160 insertions(+), 3 deletions(-)
Signature · 1 line
2.14.3