From owner-svn-src-head@FreeBSD.ORG Fri Mar 15 13:47:00 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 0A34F7D9; Fri, 15 Mar 2013 13:47:00 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) by mx1.freebsd.org (Postfix) with ESMTP id 88579150; Fri, 15 Mar 2013 13:46:59 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.6/8.14.6) with ESMTP id r2FDkvDt053357; Fri, 15 Mar 2013 17:46:57 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.6/8.14.6/Submit) id r2FDkvqY053356; Fri, 15 Mar 2013 17:46:57 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Fri, 15 Mar 2013 17:46:57 +0400 From: Gleb Smirnoff To: Andre Oppermann Subject: Re: svn commit: r248323 - head/sys/netinet Message-ID: <20130315134657.GL48089@FreeBSD.org> References: <201303151253.r2FCrsSs016150@svn.freebsd.org> <51431B89.5010501@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <51431B89.5010501@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 13:47:00 -0000 On Fri, Mar 15, 2013 at 02:00:57PM +0100, Andre Oppermann wrote: A> On 15.03.2013 13:53, Gleb Smirnoff wrote: A> > Author: glebius A> > Date: Fri Mar 15 12:53:53 2013 A> > New Revision: 248323 A> > URL: http://svnweb.freebsd.org/changeset/base/248323 A> > A> > Log: A> > - Use m_getcl() instead of hand allocating. A> > A> > Sponsored by: Nginx, Inc. A> > A> > Modified: A> > head/sys/netinet/tcp_output.c A> > A> > Modified: head/sys/netinet/tcp_output.c A> > ============================================================================== A> > --- head/sys/netinet/tcp_output.c Fri Mar 15 12:52:59 2013 (r248322) A> > +++ head/sys/netinet/tcp_output.c Fri Mar 15 12:53:53 2013 (r248323) A> > @@ -842,23 +842,19 @@ send: A> > TCPSTAT_INC(tcps_sndpack); A> > TCPSTAT_ADD(tcps_sndbyte, len); A> > } A> > - MGETHDR(m, M_NOWAIT, MT_DATA); A> > +#ifdef INET6 A> > + if (MHLEN < hdrlen + max_linkhdr) A> > + m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); A> > + else A> > +#endif A> > + m = m_gethdr(M_NOWAIT, MT_DATA); A> > + A> A> m = m_getm2(hdrlen + max_linkhdr, M_NOWAIT, MT_DATA, M_PKTHDR); A> A> would be even more compact. Since max_linkhdr could be large as well, A> the possibility of a cluster applies to IPv4 too. m_getm2() may return chain. According to argument list, you probably meant m_get2(). Yes, that would be more compat. But, again, I am not sure that using pagesized cluster won't break anything. If you are sure, feel free to change that. -- Totus tuus, Glebius.