lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] Re: [lwip] Gigabit Ethernet and LWIP


From: Kieran Mansley
Subject: [lwip-users] Re: [lwip] Gigabit Ethernet and LWIP
Date: Wed, 08 Jan 2003 23:49:53 -0000

On Tue, 7 May 2002, Adam Dunkels wrote:
> Hi!
>
> On Saturday 04 May 2002 13.02, Kieran Mansley wrote:
> > > Have you thought about Gigabit Ethernet and LWIP.  Will the timer
> > > interval have to be decreased due to the increased volume of packets?
> > >
> > > Do you have an idea of performance of LWIP, and if it will be able to
> > > keep up with Gigabit speeds?
> >
> > I'm working on something similar.  Not Gigabit Ethernet, but a gigabit
> > rate network.  lwIP in it's current form isn't targetted at this, and so
> > is unlikely to give the performance you require.  This will be especially
> > true if you use the sockets interface as the amount of thread switching
> > and message passing is just too great an overhead.  I'm creating a
> > somewhat different version for which the path for normal data delivery and
> > transmission is in a single thread, and which isn't so concerned about low
> > memory usage.  This should improve things.
>
> I don't fully agree with this - when using the raw API (which is single
> threaded), the performance of lwIP in terms of CPU cycles is really good
> because no copying or thread switching is being made.

There's still a thread required to pass the data from the NIC to the stack
however, and a thread boundary to cross there.  I'm changing it to have
the stack take the data from the network itself.  This tighter integration
with the network is rather specialised, but gives much increased
performance and other benefits - my research is to see how these can be
applied to TCP.  Also, for me a TCP/IP stack without a sockets library has
limited use - I need to be able to use it with existing applications.  As
a result I need to run the sockets code in the same thread too!

> I would say that the main problem with running lwIP with gigabit speeds isn't
> CPU performance, but rather throughput issues. With gigabit speeds, the
> bandwidth*delay product becomes so large that the standard TCP mechanisms
> that lwIP implements cannot "fill the pipe". The TCP extensions defined in
> RFC1323, "TCP Extensions for High Performance", should really be implemented
> if high throughput is desired.

Definitely, and that's on my list as well.  CPU performance is still a big
issue though.  If you are using a lot of CPU to service the network, that
means less CPU for running the application.

> Still, interfacing lwIP with gigabit Ethernet is doable, but it will not be
> able to take full advantage of the gigabit speeds.
>
> Kieran, since you are writing a new API, you might be interested in
> looking at the new event based API for 0.6, by the way.

Yep, will take a look when it comes out.  Sounds like I'm going to have
fun merging my code with yours!

Kieran

[This message was sent through the lwip discussion list.]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]