Index: sys/netinet/tcp_hostcache.c =================================================================== --- sys/netinet/tcp_hostcache.c +++ sys/netinet/tcp_hostcache.c @@ -650,14 +650,18 @@ } /* Use a buffer for 16 lines */ - sbuf_new_for_sysctl(&sb, NULL, 16 * linesize, req); + sbuf_new_for_sysctl(&sb, NULL, TCP_HOSTCACHE_BUCKETLIMIT * linesize, req); sbuf_printf(&sb, "\nIP address MTU SSTRESH RTT RTTVAR " " CWND SENDPIPE RECVPIPE HITS UPD EXP\n"); + len = 1; #define msec(u) (((u) + 500) / 1000) for (i = 0; i < V_tcp_hostcache.hashsize; i++) { + if (len > 0) + sbuf_drain(&sb); + len = 0; THC_LOCK(&V_tcp_hostcache.hashbase[i].hch_mtx); TAILQ_FOREACH(hc_entry, &V_tcp_hostcache.hashbase[i].hch_bucket, rmx_q) { @@ -683,6 +687,7 @@ hc_entry->rmx_hits, hc_entry->rmx_updates, hc_entry->rmx_expire); + len++; } THC_UNLOCK(&V_tcp_hostcache.hashbase[i].hch_mtx); }