Index: netinet/tcp_reass.c =================================================================== --- netinet/tcp_reass.c (revision 224592) +++ netinet/tcp_reass.c (working copy) @@ -174,6 +174,7 @@ struct tseg_qent *nq; struct tseg_qent *te = NULL; struct socket *so = tp->t_inpcb->inp_socket; + char *s = NULL; int flags; INP_WLOCK_ASSERT(tp->t_inpcb); @@ -212,6 +213,11 @@ TCPSTAT_INC(tcps_rcvmemdrop); m_freem(m); *tlenp = 0; + if ((s = tcp_log_addrs(&tp->t_inpcb->inp_inc, th, NULL, NULL))) { + log(LOG_DEBUG, "%s; %s: queue limit reached, segment dropped\n", + s, __func__); + free(s, M_TCPLOG); + } return (0); } @@ -224,6 +230,12 @@ TCPSTAT_INC(tcps_rcvmemdrop); m_freem(m); *tlenp = 0; + if ((s = tcp_log_addrs(&tp->t_inpcb->inp_inc, th, NULL, NULL))) { + log(LOG_DEBUG, "%s; %s: global zone limit reached, segment dropped%s\n", + s, __func__, (th->th_seq == tp->rcv_nxt ? + ", would have drained queue!" : "")); + free(s, M_TCPLOG); + } return (0); } tp->t_segqlen++;