This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: TCP/IP performance under eCos & other compilers than gnu


> The same test was run under vxWorks, and it got well over 40
> megabits/second.  I'm assuming this is a problem with the gcc
> compiler and not the BSD stack or the driver.

This may not be true. There could be some extra copy operations in the
OpenBSD stack and driver. I know the ARMv4 has problems with cache
flushes. Its really expensive to do, since there is not one
instruction to do it. This means the driver has to copy the data from
cachable memory into uncachable before setting the DMA to work. Maybe
this has been fixed in the Xscale and so at least one copy has gone.

> Although gcc is a fine compiler for x86 and other more common 
> processors, I can see the code it produces for the ARM is less than stellar 
> as it does not take advantage of the ARM's conditional execution architecture 
> very well.

Quite a while back there was a post to the list about gcc producing
slow CRC calculation code when using -O3. I don't remember all the
details, so find the post in the archive. I think if you compiled the
CRC code -O you got faster code.

Have you tried gcc3? Jifl has posted a set of patches to make it
work. Maybe it produces better code. 

      Andrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]