Date: Mon, 22 Jun 2009 20:42:59 -0400 From: Ken Smith <kensmith@cse.Buffalo.EDU> To: Andre Oppermann <andre@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r194672 - in head/sys: kern netinet sys Message-ID: <1245717779.7070.39.camel@bauer.cse.buffalo.edu> In-Reply-To: <200906222308.n5MN856I055711@svn.freebsd.org> References: <200906222308.n5MN856I055711@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-/kHhM7wMMzw3OTCbG9zP Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2009-06-22 at 23:08 +0000, Andre Oppermann wrote: > Author: andre > Date: Mon Jun 22 23:08:05 2009 > New Revision: 194672 > URL: http://svn.freebsd.org/changeset/base/194672 >=20 > Log: > Add soreceive_stream(), an optimized version of soreceive() for > stream (TCP) sockets. > =20 > It is functionally identical to generic soreceive() but has a > number stream specific optimizations: > o does only one sockbuf unlock/lock per receive independent of > the length of data to be moved into the uio compared to > soreceive() which unlocks/locks per *mbuf*. > o uses m_mbuftouio() instead of its own copy(out) variant. > o much more compact code flow as a large number of special > cases is removed. > o much improved reability. > =20 > It offers significantly reduced CPU usage and lock contention > when receiving fast TCP streams. Additional gains are obtained > when the receiving application is using SO_RCVLOWAT to batch up > some data before a read (and wakeup) is done. > =20 > This function was written by "reverse engineering" and is not > just a stripped down variant of soreceive(). > =20 > It is not yet enabled by default on TCP sockets. Instead it is > commented out in the protocol initialization in tcp_usrreq.c > until more widespread testing has been done. > =20 > Testers, especially with 10GigE gear, are welcome. > =20 > MFP4: r164817 //depot/user/andre/soreceive_stream/ >=20 > Modified: > head/sys/kern/uipc_socket.c > head/sys/netinet/tcp_usrreq.c > head/sys/sys/socketvar.h >=20 Can you please explain why you committed this during Code Slush 3 days before Code Freeze started? It looks like something that should be committed after we do the branch for 8.0, it doesn't look like something ready to be part of a release even in its #ifdef-ed-out form. I certainly don't mind it going in after the branch as long as it's had some level of reasonable review. I just think it's too late to be adding this given the stage we're at in the 8.0 release. Thanks. --=20 Ken Smith - From there to here, from here to | kensmith@cse.buffalo.edu there, funny things are everywhere. | - Theodore Geisel | --=-/kHhM7wMMzw3OTCbG9zP Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkpAJRMACgkQ/G14VSmup/ZwaQCfV0OxtSRrTJzglQnW45u/4oic sRUAnjBqLfVj7WK/5M6HKXup1Zj1rajK =VkW6 -----END PGP SIGNATURE----- --=-/kHhM7wMMzw3OTCbG9zP--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1245717779.7070.39.camel>