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

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to