lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] Help in getting maximum throughput with LWIP.


From: Martin Persich
Subject: Re: [lwip-users] Help in getting maximum throughput with LWIP.
Date: Thu, 8 Apr 2010 19:16:40 +0200

Hi Dany,
I made many tests with my devices last two weeks and I have this conclusion:
If you have AVR32 (original "macb.c" driver) with full duplex connection to
SWITCH - there is not problem with hanging application. But if you have half
duplex connection to HUB (this is old equipment, I know, but I uses them for
easy communication debuging with Wireshark) - there may be problem with
transmission hanging with MACB.TSR (Transmit Status Register) with error
flags "RLE". In this situation the software must reinitialize transmission
and there is not any function for this in original "macb.c" driver. I send
my conclusion to Atmel's developper ...

Best Regards
Martin Persich



----- Original Message ----- 
From: Dany Thiffeault
To: Mailing list for lwIP users
Sent: Tuesday, March 30, 2010 6:01 PM
Subject: Re: [lwip-users] Help in getting maximum throughput with LWIP.


Ok, I'm now back up-and-running. With Studio 2.5, Framework 1.7 and LWIP
1.3.2. My streaming is working great at the moment. I'm limited to
2.1Mbits/s of throughput though, so I started reading your Wiki page Simon
and trying things.


I have one question:
- How do I know if the checksum can be calculated by the hardware? I'm using
a board I made but based on the Atmel EVK1100.


Thanks!!!!
Dany




On Tue, Mar 23, 2010 at 11:50 AM, Martin Persich <address@hidden>
wrote:

Hi Dany,
I'm workin with AVR32 too and I have similar problem in this momen (I have
LwIP 1.3.2 + some CVS changes and Atmel framework 1.7 of course). My app is
hanging with huge ethernet load (traffic approx 20 GB / day) sometime - once
per day, but most often once per week, ... terrible situation. I am
suspecting Atmel "macb.c" driver in this moment, I am not sure if all code
in "macb.c" (function lMACBSend) is thread and IRQ safety. But it is only my
last idea. I changed ETHERNET_CONF_NB_TX_BUFFERS from 10 to 24 two days ago
...
I haven't any problem solution in this moment.
Martin Persich

----- Original Message ----- 
From: Dany Thiffeault
To: Mailing list for lwIP users
Sent: Monday, March 22, 2010 10:13 PM
Subject: Re: [lwip-users] Help in getting maximum throughput with LWIP.


wow, great thanks. I'll make some tests tomorrow.


Indeed, I forgot to mention. I'm using TCP with the netconn API. While
reading through the multiple posts I missed the past few months, I found out
that 1.3.2 is out and Atmel framework 1.7 too. I'll upgrade everything
tomorow.


But in the meantime, I'm experiencing problems like I wrote. I don't know
why my app is hanging in the tcp_in.c file. If somebody knows what's going
on on that line, let me know.





On Mon, Mar 22, 2010 at 5:05 PM, address@hidden <address@hidden> wrote:

I just took the time to write something about performance/throughput on the
wiki:
- http://lwip.wikia.com/wiki/Maximizing_throughput
- http://lwip.wikia.com/wiki/Tuning_TCP

However, you didn't tell us if you are using TCP or UDP? Also, I don't know
what ETHERNET_CONF_NB_TX_BUFFERS is, so I'm guessing it's related to the
lwIP port you are using... Maybe someone else here has experience with the
platform you are using, but I don't :-(

Simon


Dany Thiffeault wrote:
Hi,


I'm currently coding an application on a AVR32 UC3 board. The board is
actually an acquisition platform that's using Ethernet (lwip 1.3.1
currently). I'm using FreeRTOS and the Atmel framework 1.4.


My connection is working great with my Windows application. There are two
modes to my AVR32 application:


1- Idle mode where there are only keep-alive packets every 1 second, of
8bytes each.
2- Streaming mode, where the AVR32 (so LWIP) send data as fast as possible
to the Win application.


What is important to me is to get maximum speed in Streaming mode, where
packets are Header(24bytes) + Data(?Bytes). I'm currently playing with the
data size to see what I can achieve. Ideally, the maximum size I would like
is about 35KBytes. Right now, I'm not sure what's going on, but the Ethernet
seems to hang after a few seconds of streaming. Haven't found the problem so
far.


So, what are the important parameters for maximum thoughput in the
lwipopts.h file dans other #defines like ETHERNET_CONF_NB_TX_BUFFERS, etc.
I'm kind of lost in all those parameters.


Thanks a lot!!
Dany

_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users



_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users




_______________________________________________
lwip-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users





reply via email to

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