svn commit: r189863 - in head: share/man/man4 sys/net

Kris Kennaway kris at FreeBSD.org
Sun Mar 15 13:23:09 PDT 2009


Robert Watson wrote:
> Author: rwatson
> Date: Sun Mar 15 20:17:44 2009
> New Revision: 189863
> URL: http://svn.freebsd.org/changeset/base/189863
> 
> Log:
>   Teach the loopback interface about checksum generation and validation
>   avoidance:
>   
>   - Enable setting the RXCSUM and TXCSUM flags for loopback interfaces;
>     set both by default.
>   - When RXCSUM is set, flag packets sent over the loopback interface as
>     having checked and valid IP, UDP, TCP checksums so that higher
>     protocol layers won't check them.
>   - Always clear CSUM_{IP,UDP_TCP} checksum required flags on transmit,
>     as they will have gotten there as a result of TXCSUM being set.
>   
>   This is done only for packets explicitly sent over the loopback, not
>   simulated loopback via if_simloop() due to !SIMPLEX interfaces, etc.
>   
>   Note that enabling TXCSUM but not RXCSUM will lead to unhappiness, as
>   checksums won't be generated but will be validated.
>   
>   Kris reports that this leads to significant performance improvements
>   in loopback benchmarking with TCP and UDP for throughput:
>   
>   	RXCSUM 	RXCSUM+TXCSUM
>   TCP	15%	37%
>   UDP	10%	74%

More like 24% instead of 74% actually, the sender and receiver had 
become unbalanced in that test.

Kris



More information about the svn-src-all mailing list