07-29-2010 08:16 AM
We have a board (very similar to ML410) with two ethernet connections which are connected to two Hard Temacs of one LL_Temac instance. We boot the board with Linux kernel 2.6.25 and every thing looks great except one strange problem. When we assign two IP addresses to just one interface we achieve more than 60 Mbps TCP bandwidth. BUT.. when we test the same traffic with two interfaces this bandwidth reduces to near few Kbps!! It seems when some IP forwarding and switching is required between two interfaces this problem emerges!!!
Another strange thing I found in lwip (Light weight IP) document, which says lwip does not work with two interfaces from one LL_Temac instance.
So I wonder if there are problems or limitations using two cores simultaneously from one LL_Temac instance? Or linux drivers have limitations??
thanks in advanced
08-10-2010 05:38 AM
During these days we tested various configurations and possibilitie:
After some debugging (using printk) we understood that after receiving some packets something goes wrong and receiving interrupts get ignored (all send interrupts works but the other interface did not receive the receive interrupt)!! and amazingly after a period of about 3-20 seconds the packets appear in the log all at once!! it seems kernel is busy with sth or a flag is not set corretly or interrupts are disabled, ... In this condition interfaces only return to correct state if we issue ifconfig down/up commands.
Any help or comment may help us.
08-10-2010 06:20 AM
First of all, with just one interface enable you have reached a bandwidth of 60Mbps, however it should be some thing simply over 200Mbps if you are using a PowerPC core ( as you said your board is similar to Ml410) may be you like to double check the LL TEMAC module parametrs and buffer sizes and to see if jumbo frames are enabled.
Did you ever try to use separate LL TEMAC modules for each of your TEMAC interfaces?
does your XBD file support this situation?
It seems that you have created the board yourself, and so, you have generated the XBD file yourself, and so your should be able to modify it easily.
In addition I am interested to see the output of 'ifconfig --all' command.
Mohammad Sadegh Sadri
08-10-2010 07:09 AM
Thanks for your reply,
At first, our interface is phy is MII (100 Mbps) and 70 seems great for our purpose
BUffer size is the max value 32K and JUMBO frame option is enabled by default (in xlltemac_main.c in xenet_open() function)
And also I mentioned that currently we use two interfaces from two temac instances.
Just for emphasize I should say that no packet get lost all of them are buffered and after some seconds (we have record of 100 seconds!!!) they appear. During this period of silence no receive interrupt is caught by driver !!!
08-11-2010 12:18 AM
I think you strongly believe that there is some thing wrong with the driver
- Did you try to ask your question in the "Linux PPC-dev" mailing list? There you can find the original developers of the driver.
- Did you try to use two EMAC lite modules instead of LL TEMAC and see how is the band width?
- How do you measure your band width? what application are you using for that?
- What is the output of "ifconfig --all" command ?
- What version of EDK ( LL TEMAC core ) are you using?
- your MHS file can be also helpful, if you put it here. especially to see how you have configured LL TEMAC module.