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>