From nobody@FreeBSD.org Wed May 23 03:12:53 2007 Return-Path: Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A416816A400 for ; Wed, 23 May 2007 03:12:53 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [69.147.83.33]) by mx1.freebsd.org (Postfix) with ESMTP id 9566B13C448 for ; Wed, 23 May 2007 03:12:53 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id l4N3Crp3068157 for ; Wed, 23 May 2007 03:12:53 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id l4N37poc067723; Wed, 23 May 2007 03:07:51 GMT (envelope-from nobody) Message-Id: <200705230307.l4N37poc067723@www.freebsd.org> Date: Wed, 23 May 2007 03:07:51 GMT From: Phil Rosenthal To: freebsd-gnats-submit@FreeBSD.org Subject: systat -tcp does not show tcp rexmit on sack enabled sockets (patch included) X-Send-Pr-Version: www-3.0 >Number: 112882 >Category: bin >Synopsis: systat -tcp does not show tcp rexmit on sack enabled sockets (patch included) >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: closed >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Wed May 23 03:20:01 GMT 2007 >Closed-Date: Wed May 23 05:41:57 GMT 2007 >Last-Modified: Wed May 23 05:41:57 GMT 2007 >Originator: Phil Rosenthal >Release: FreeBSD 6.2-STABLE amd64 >Organization: ISPrime LLC >Environment: FreeBSD bmw2.isprime.com 6.2-STABLE FreeBSD 6.2-STABLE #0: Tue May 22 22:20:23 EDT 2007 root@bmw2.isprime.com:/usr/obj/usr/src/sys/BMW2 amd64 >Description: FreeBSD's "systat" tool has a mode to display statistics for all tcp sessions on the system. This mode is called by running "systat -tcp". When a packet is retransmitted due to duplicate ack packets, or a timeout waiting for an ack, tcps_sndrexmitpack is incremented. When a packet is retransmitted due to a selective acknowledgement (sack), tcps_sack_rexmits is incremented instead. systat -tcp only shows tcps_sndrexmitpack, and given that most clients today support sack, the user is falsely informed that there is a much lower amount of packet loss/retransmits. Additionally, the 9 digit values are easily overflowed on a server serving hundreds of megabits of traffic which is becoming more commonplace given the performance and wide availability of gig-e chipsets. The patch referenced below fixes both of these issues. >How-To-Repeat: 1) Enable sack on both a client and a server, and set up a tcp socket. 2) Cause packet loss (you can use dummynet for this) 3) Watch systat -tcp >Fix: cd /usr/src/usr.bin/systat fetch http://bmw2.isprime.com/systat-sack-rexmit.diff patch < systat-sack-rexmit.diff make make install This patch is built against FreeBSD 6.2-STABLE. Earlier builds will fail with this patch. >Release-Note: >Audit-Trail: State-Changed-From-To: open->closed State-Changed-By: remko State-Changed-When: Wed May 23 05:41:53 UTC 2007 State-Changed-Why: duplicate of 112881 http://www.freebsd.org/cgi/query-pr.cgi?pr=112882 >Unformatted: