HomeFreeBSD

Decompose TCP INP_INFO lock to increase short-lived TCP connections scalability:

Description

Decompose TCP INP_INFO lock to increase short-lived TCP connections scalability:

  • The existing TCP INP_INFO lock continues to protect the global inpcb list stability during full list traversal (e.g. tcp_pcblist()).
  • A new INP_LIST lock protects inpcb list actual modifications (inp allocation and free) and inpcb global counters.

It allows to use TCP INP_INFO_RLOCK lock in critical paths (e.g. tcp_input())
and INP_INFO_WLOCK only in occasional operations that walk all connections.

PR: 183659
Differential Revision: https://reviews.freebsd.org/D2599
Reviewed by: jhb, adrian
Tested by: adrian, nitroboost-gmail.com
Sponsored by: Verisign, Inc.