aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_timer.h
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2014-04-10 18:15:35 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2014-04-10 18:15:35 +0000
commit66eefb1eae89c58cf9a5fffdf6ad0d549a49e9f2 (patch)
treec70bc3440a40fdcfa85bfb76b69c740b1a115702 /sys/netinet/tcp_timer.h
parent1e4b22b44b40d7f28d639b9c988d0f1cf6fdd5e4 (diff)
downloadsrc-66eefb1eae89c58cf9a5fffdf6ad0d549a49e9f2.tar.gz
src-66eefb1eae89c58cf9a5fffdf6ad0d549a49e9f2.zip
Currently, the TCP slow timer can starve TCP input processing while it
walks the list of connections in TIME_WAIT closing expired connections due to contention on the global TCP pcbinfo lock. To remediate, introduce a new global lock to protect the list of connections in TIME_WAIT. Only acquire the TCP pcbinfo lock when closing an expired connection. This limits the window of time when TCP input processing is stopped to the amount of time needed to close a single connection. Submitted by: Julien Charbon <jcharbon@verisign.com> Reviewed by: rwatson, rrs, adrian MFC after: 2 months
Notes
Notes: svn path=/head/; revision=264321
Diffstat (limited to 'sys/netinet/tcp_timer.h')
-rw-r--r--sys/netinet/tcp_timer.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h
index 3115fb376feb..c04723a5c97b 100644
--- a/sys/netinet/tcp_timer.h
+++ b/sys/netinet/tcp_timer.h
@@ -178,7 +178,8 @@ extern int tcp_fast_finwait2_recycle;
void tcp_timer_init(void);
void tcp_timer_2msl(void *xtp);
struct tcptw *
- tcp_tw_2msl_scan(int _reuse); /* XXX temporary */
+ tcp_tw_2msl_reuse(void); /* XXX temporary? */
+void tcp_tw_2msl_scan(void);
void tcp_timer_keep(void *xtp);
void tcp_timer_persist(void *xtp);
void tcp_timer_rexmt(void *xtp);