diff options
| author | Maksim Yevmenkin <emax@FreeBSD.org> | 2013-10-31 20:33:21 +0000 |
|---|---|---|
| committer | Maksim Yevmenkin <emax@FreeBSD.org> | 2013-10-31 20:33:21 +0000 |
| commit | f7a3a2a57c4ee87369db84f9538ecc0c9dbfa6a6 (patch) | |
| tree | e12c2e367e30f1879a772c96b5ac4907f6257d2b /sys/kern/uipc_socket.c | |
| parent | c1fd62d4c1d77140bd3c6c89a305e6403712f601 (diff) | |
Notes
Diffstat (limited to 'sys/kern/uipc_socket.c')
| -rw-r--r-- | sys/kern/uipc_socket.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 66af1810513d..9b5e342eadba 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -486,6 +486,10 @@ SYSCTL_INT(_regression, OID_AUTO, sonewconn_earlytest, CTLFLAG_RW, struct socket * sonewconn(struct socket *head, int connstatus) { + static struct timeval lastover; + static struct timeval overinterval = { 60, 0 }; + static int overcount; + struct socket *so; int over; @@ -497,9 +501,17 @@ sonewconn(struct socket *head, int connstatus) #else if (over) { #endif - log(LOG_DEBUG, "%s: pcb %p: Listen queue overflow: " - "%i already in queue awaiting acceptance\n", - __func__, head->so_pcb, head->so_qlen); + overcount++; + + if (ratecheck(&lastover, &overinterval)) { + log(LOG_DEBUG, "%s: pcb %p: Listen queue overflow: " + "%i already in queue awaiting acceptance " + "(%d occurrences)\n", + __func__, head->so_pcb, head->so_qlen, overcount); + + overcount = 0; + } + return (NULL); } VNET_ASSERT(head->so_vnet != NULL, ("%s:%d so_vnet is NULL, head=%p", |
