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

Reply via email to