Skip site navigation (1)Skip section navigation (2)
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>