Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Mar 2009 20:23:07 +0000
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r189863 - in head: share/man/man4 sys/net
Message-ID:  <49BD63AB.6090702@FreeBSD.org>
In-Reply-To: <200903152017.n2FKHijd038587@svn.freebsd.org>
References:  <200903152017.n2FKHijd038587@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49BD63AB.6090702>