HomeFreeBSD

MFC r286227, r286443:

Description

MFC r286227, r286443:

r286227:

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.

r286443:

Fix a kernel assertion issue introduced with r286227:
Avoid too strict INP_INFO_RLOCK_ASSERT checks due to
tcp_notify() being called from in6_pcbnotify().

Reported by: Larry Rosenman <ler@lerctr.org>
Submitted by: markj, jch

Details

Provenance
jchAuthored on
Reviewer
jhb
Differential Revision
D2599: Decompose TCP INP_INFO lock to increase short-lived connections scalability
Parents
rS309107: Fix up contrib/llvm mergeinfo.
Branches
Unknown
Tags
Unknown