Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jul 2010 12:03:51 -0400
From:      Greg Ansley <gja@ansley.com>
To:        "freebsd-arm@FreeBSD.org" <freebsd-arm@FreeBSD.org>
Subject:   Re: at91sam9g20: Ethernet performance
Message-ID:  <4C4DB1E7.7090201@ansley.com>
In-Reply-To: <20100720023034.GS28908@cicely7.cicely.de>
References:  <4C444E8B.6090104@ansley.com>	<20100719153614.GI28908@cicely7.cicely.de>	<AANLkTilj6crfPkCfViYU8LkFxZ6LY8WxRAghiZXaSDn_@mail.gmail.com>	<20100719.182202.918765004097971572.imp@bsdimp.com> <20100720023034.GS28908@cicely7.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Quick (read very very rough) real world numbers using the same (new) 
if_ate code:

"ping -s 1500 -c 1000 -i .006"  (from an idle quad core server on a 
100BaseT):

rm9200:  min/avg/max/stddev = 0.826/1.001/2.472/0.063 (if_ate)
sam9g20: min/avg/max/stddev = 0.526/0.586/0.892/0.037 (if_ate)

While the 9g20 is not blazing it is respectable on a 100Mb link and ~1.7 
times faster that the rm9200 even with the receive copies still in place.

For reference here are the results from the if_macb driver for sam9 
(only) that was  committed a few days ago:

sam9g20: min/avg/max/stddev = 0.703/0.779/1.000/0.038 (if_macb)

Greg

On 7/19/10 10:30 PM, Bernd Walter wrote:
> The performance has two reasons.
> First the fact that the RM9200 ATE can't DMA into non 4-byte aligned
> buffers, which requires copying and memory bandwidth is rather slow,
> which especially sucks because of the required copy'ing.
> IP headers are no n*4 bytes, so you want a 2 byte offset in your
> receive buffers otherwise IP code copy'es received buffers.
> On sending AFAIK the ATE driver copy'es data into 4 alignment.
> The memory interface on SAM9 is much faster because it is DDR,
> higher clocked and with it's bus matrix e.g. DMA can access DDRAM
> and CPU IO in parallel.
> I don't see a technical reason to have different source files.
> A few things can be tuned on compiletime, but this is only
> a win to save code size - from the runtime point a few rev-checks
> in hybrid kernel shouldn't hurt.
>    



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C4DB1E7.7090201>