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(-) -- 2.14.3