From owner-svn-src-user@FreeBSD.ORG Fri Oct 26 16:52:56 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C0989BCA; Fri, 26 Oct 2012 16:52:56 +0000 (UTC) (envelope-from andre@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A95498FC0A; Fri, 26 Oct 2012 16:52:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q9QGqune044226; Fri, 26 Oct 2012 16:52:56 GMT (envelope-from andre@svn.freebsd.org) Received: (from andre@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q9QGqu4g044224; Fri, 26 Oct 2012 16:52:56 GMT (envelope-from andre@svn.freebsd.org) Message-Id: <201210261652.q9QGqu4g044224@svn.freebsd.org> From: Andre Oppermann Date: Fri, 26 Oct 2012 16:52:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r242148 - user/andre/tcp_workqueue/sys/netinet X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Oct 2012 16:52:56 -0000 Author: andre Date: Fri Oct 26 16:52:56 2012 New Revision: 242148 URL: http://svn.freebsd.org/changeset/base/242148 Log: Revert r242001. All NICs supporting TSO also support doing DMA chains larger than 64K and hacking around it in TCP is not correct. The correct fix is within the drivers artificially limiting their DMA chain length. Discussed with: yongari Modified: user/andre/tcp_workqueue/sys/netinet/tcp_output.c Modified: user/andre/tcp_workqueue/sys/netinet/tcp_output.c ============================================================================== --- user/andre/tcp_workqueue/sys/netinet/tcp_output.c Fri Oct 26 16:47:52 2012 (r242147) +++ user/andre/tcp_workqueue/sys/netinet/tcp_output.c Fri Oct 26 16:52:56 2012 (r242148) @@ -772,12 +772,9 @@ send: * Limit a burst to IP_MAXPACKET minus IP, * TCP and options length to keep ip->ip_len * from overflowing. - * Deduct max_linkhdr as well to prevent the - * eventual DMA chain from exceeding IP_MAXPACKET - * (64K) as well. */ - if (len > IP_MAXPACKET - (hdrlen + max_linkhdr)) { - len = IP_MAXPACKET - (hdrlen + max_linkhdr); + if (len > IP_MAXPACKET - hdrlen) { + len = IP_MAXPACKET - hdrlen; sendalot = 1; } @@ -808,7 +805,7 @@ send: } else tso = 0; - KASSERT(len + hdrlen + ipoptlen + max_linkhdr <= IP_MAXPACKET, + KASSERT(len + hdrlen + ipoptlen <= IP_MAXPACKET, ("%s: len > IP_MAXPACKET", __func__)); /*#ifdef DIAGNOSTIC*/