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]
Other format: [Raw text]

Re: Problem compiling newnet with timing stats


> I was hoping that the timing stats would shed some light on where
> the performance bottleneck is.  Running timing stats on the OpenBSD
> stack, I got the following results from sending 1024 UDP packets:

The stats themselves can add quite a bit of overhead for some of the
operations. When comparing OpenBSD and FreeBSD did you have them
turned off for OpenBSD?

> I'm not sure what the units are but the UDP and IP checksums occupy a large
> percentage of the processing time.  I disabled the UDP checksum and was able
> to increase the throughput to 6.0 Mbps which is still not as high as I need.

Be careful here. Things do get corrupt and passed the ethernet
checksum. Sun Microsystems had problems with there NFS servers getting
corrupt when they disabled UDP checksums. A better idea may be to
rewrite the code in assembly. Also look back in the mail
archive. There were a couple of posts about this a long time ago.

What's your platform again? I made some saving for ARM and i82559. See
bugzilla.redhat.com. Its not responding at the moment so i cannot give
you an exact reference. Search for my name and it should be obvious. I
optimized the memcpy from PCI space to normal space. The PCI space is
none cachable, none bufferable. Doing none word aligned reads or
writes to PCI space is very expensive compared to normal ram. So i
wrote a special memcpy function which does some bit twiddling so that
the PCI read/write is always word aligned. This gave between 2 and 3
times speedup for the memcpy in the driver. The code is not
generic. It assume little endian. Hence its not been merged into the
eCos repository. 

      Andrew

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


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