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


Gary Thomas wrote:

> On Fri, 2002-06-14 at 15:03, Paul Randall wrote:
> > Hi all,
> >
> > I am having problems compiling the newnet (FreeBSD) template with
> > CYGDBG_NET_TIMING_STATS turned on in eCos 2.0.  I can compile and run
> > the original TCP/IP stack (OpenBSD) with timing stats with no problem.
> > During the make for newnet, I get the following errors:
>   <snip>
>
> Don't forget that the FreeBSD stack is still alpha - some things haven't
> been well shaken out and this is obviously one of them.
>
> Exactly what information were you interested in getting?  The particular
> statistics that CYGDBG_NET_TIMING_STATS enables are quite low level and
> really only deal with some of the internal memory handling of the stack.
> They don't provide much in the way of general information about the
> networking system as a whole.

I have been running some network performance tests with eCos running on the
viper.  Using the FreeBSD stack, I am able to get a throughput of 5.5 Mbps
with 1500 byte UDP packets in one direction from the viper to my host PC.
Using the OpenBSD stack, the rate is 4.7 Mbps.  The throughput is about the
same when running on an isolated 10 Mbps or a 100 Mbps network.

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:

Net malloc:
  count:     41, min:       5.45, max:      21.79, total:     562.44,
ave:      13.62
Net free:
  count:     12, min:      20.43, max:      28.60, total:     291.43,
ave:      23.15
Mbuf alloc:
  count:   3083, min:      14.98, max:     144.36, total:   56569.52,
ave:      17.70
Mbuf free:
  count:   3015, min:      13.62, max:     360.89, total:   58892.82,
ave:      19.07
Cluster alloc:
  count:     55, min:       6.81, max:      17.70, total:     875.66,
ave:      14.98
Checksum:
  count:   2050, min:       5.45, max:     281.90, total:  167672.61,
ave:      81.71
Net memcpy:
  count:      0, min:       0.00, max:       0.00, total:       0.00, ave:
-1370435568.18
Net memset:
  count:      0, min:       0.00, max:       0.00, total:       0.00, ave:
-1370435568.18

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.

Paul Randall
Delta Information Systems


-- 
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]