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