svn commit: r194672 - in head/sys: kern netinet sys

Ken Smith kensmith at cse.Buffalo.EDU
Tue Jun 23 00:43:03 UTC 2009

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:
> Log:
>   Add soreceive_stream(), an optimized version of soreceive() for
>   stream (TCP) sockets.
>   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.
>   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.
>   This function was written by "reverse engineering" and is not
>   just a stripped down variant of soreceive().
>   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.
>   Testers, especially with 10GigE gear, are welcome.
>   MFP4:	r164817 //depot/user/andre/soreceive_stream/
> Modified:
>   head/sys/kern/uipc_socket.c
>   head/sys/netinet/tcp_usrreq.c
>   head/sys/sys/socketvar.h

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.


                                                Ken Smith
- From there to here, from here to      |       kensmith at
  there, funny things are everywhere.   |
                      - Theodore Geisel |

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
Url :

More information about the svn-src-all mailing list