git: tcp: Use 4-tuple hash to optimize local port selection.
sephe at crater.dragonflybsd.org
Thu Oct 29 20:40:24 PDT 2015
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Tue Oct 27 20:43:11 2015 +0800
tcp: Use 4-tuple hash to optimize local port selection.
So that the connection can:
- Stay in the current netisr to avoid connection forwarding.
- Use the portinfo of the target netisr to avoid portinfo
contention, if connection forwarding could not be avoided,
e.g. when the ports of current netisr are depleted.
And don't try too hard to perform this local port selection
optimization (it's relative time consuming). Number of tries
for this optimized local port selection is controlled by sysctl
node net.inet.ip.porthash_trycount (15 by default). Setting
this sysctl node to 0 will disable this local port selection
Total IPI rate and MP collision rate is significantly reduced,
when tools/kq_connect_client runs @395Kconns/s:
- Total IPI rate is reduced by 64K/s (421K/s -> 357K/s).
- Total MP collision rate is reduced by 81K/s (310K/s -> 229K/s).
Summary of changes:
sys/netinet/in_pcb.c | 57 ++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 49 insertions(+), 8 deletions(-)
DragonFly BSD source repository
More information about the Commits