|
From: | Bill Auerbach |
Subject: | RE: [lwip-users] Max throughput and LWIP |
Date: | Mon, 4 Feb 2008 11:41:42 -0500 |
I’ve been doing a lot of benchmarking and tweaking to maximize
incoming TCP throughput. On a 1GbS (GBE) connection with lwIP’s TCP and my NO_SYS
socket-like API (uncomplicated wrapper on the raw API), my best numbers for
receiving are 930-946MbS. This was to test pure lwIP and the wire speed. The sending system
is a WinXP PC. Note that the theoretical maximum for GBE is around
980MbS. I do nothing with the incoming data (I do have an option to periodically
check the transfer since the data is known). The biggest thing which
significantly increased the speed was to turn off incoming IP/UDP/TCP checksum
checking. If I leave the checking on, I get around 650MbS with jumbo
frames. This ~940MbS was standard frames. Since the Ethernet controller
has CRC checks, I don’t think the lwIP checking is required. I was
going to pose to the group this week what is the downside of this disabling of the
checksumming, because the speed impact is substantial. My system is a PowerPC (8239) at full speed (533Mhz). For me,
memory bandwidth is the killer. If I simply copy the incoming data to
make it contiguous, throughput drops to 550MbS. What we wanted to know is
what is the maximum speed for WinXP to the PowerPC with lwIP. Bill Auerbach From:
address@hidden
[mailto:address@hidden On Behalf Of Josh Rothstein I know this is a common topic on the mailing list, but I
wanted to hear about people’s results trying to maximize throughput with
lwIP. I am current running lwIP 1.2 on an Atmel AVR32 UC3 at
66MHz. Using the sequential API with the best lwiopt.h tweaks I can come
up with, I am geting about 350kbps (2.8Mbps). I am not sure how the processor
would fair running NO_SYS using the raw api, but at the moment that is not
really an option. Would that be considered good throughput or is there
any simple tweaks to reach anything closer to wire-speed (10Mbps or even better
100Mbps)? I have read in the mailing list where people were getting
approximately 8 – 12Mbps. I am unsure if that was with the standalone raw
api, faster processors, or my settings are just poor. Any suggestions would be appreciated. Best, Josh Rothstein Embedded Systems Engineer DCX-CHOL Enterprises, Inc. 310.516.1692x134 |
[Prev in Thread] | Current Thread | [Next in Thread] |