]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r286227, r286443:
authorjch <jch@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 24 Nov 2016 14:48:46 +0000 (14:48 +0000)
committerjch <jch@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 24 Nov 2016 14:48:46 +0000 (14:48 +0000)
commit93b45d6efe2e8564808c47ed6f86bde101aa6413
tree3cfb7702bb0aeaf23d9b6562d3f81192fd2bc65b
parent62614244cb56ef668dd81d2e357651d85ef22bb2
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

git-svn-id: svn://svn.freebsd.org/base/stable/10@309108 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
15 files changed:
sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
sys/dev/cxgb/ulp/tom/cxgb_listen.c
sys/dev/cxgbe/tom/t4_connect.c
sys/dev/cxgbe/tom/t4_cpl_io.c
sys/dev/cxgbe/tom/t4_listen.c
sys/netinet/in_pcb.c
sys/netinet/in_pcb.h
sys/netinet/tcp_input.c
sys/netinet/tcp_subr.c
sys/netinet/tcp_syncache.c
sys/netinet/tcp_timer.c
sys/netinet/tcp_timewait.c
sys/netinet/tcp_usrreq.c
sys/netinet/toecore.c
sys/netinet6/in6_pcb.c