HomeFreeBSD

UDP: further performance improvements on tx

Description

UDP: further performance improvements on tx

Cumulative throughput while running 64

netperf -H $DUT -t UDP_STREAM -- -m 1

on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps

Single stream throughput increases from 910kpps to 1.18Mpps

Baseline:
https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg

  • Protect read access to global ifnet list with epoch

https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg

  • Protect short lived ifaddr references with epoch

https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg

  • Convert if_afdata read lock path to epoch

https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg

A fix for the inpcbhash contention is pending sufficient time
on a canary at LLNW.

Reviewed by: gallatin
Sponsored by: Limelight Networks
Differential Revision: https://reviews.freebsd.org/D15409