RTEMS networking performance issue

Eric Norum eric.norum at usask.ca
Thu Jul 18 21:43:18 UTC 2002

On Thursday, July 18, 2002, at 01:30 PM, jvegiraju at netscape.net wrote:

> Hi,
>    I am working on porting RTEMS networking code to ARM9 processor 
> based system.
> The ttcp benchmark test gives me 12Mbps data throughput for TCP test on 
> a 100Mbps switched connection(The RTEMS box is directly connected a 
> linux box).
> Here are some details about the test setup.
> I am using RTEMS 4.5 release and ttcp app from netdemos-4.5.
> The task priorities are,
>    netdaemon task - 100, enet_drv_tx_daemon - 75, enet_drv_rx_daemon - 
> 75,
>    ttcp app task - 150.
> The ethernet driver has a TX queue. The queue size is never going 
> beyond  3 packets(while transmitting from RTEMS side to linux side). I 
> see a TCP ACK from linux box after every two packets that it receives.
> The CPU utilization is 100% during the test. It looks like the 
> networkdaemon task is spending too much time in either packet 
> processing or busy waiting for an event to happen.
> I am using in_cksum routine optimized for ARM.
> I am wondering where the bottleneck is.
> I would appreciate your insight into this problem.

I've not used the ARM and I don't know the details of the network 
hardware you're using, but I can make some general suggestions.

1) Get a newer version of RTEMS.  There have been *many* changes to the 
networking code since the 4.5.0 days.
2) Try increasing the amount of memory set aside for mbufs and mbuf 
clusters.  Values of 128 kbytes for mbufs and 256 kbytes for mbuf 
clusters can help with the heavy network loads imposed by ttcp.
3) Tune up the ARM memcpy and IP checksum routines as much as possible.

I just tried running ttcp between my G4 Powerbook and a PC/104 card with 
a 133 MHz AMD ElanSC530 processor and Intel 82559 network interface.  
The network has quite a bit a broadcast traffic (typically 200 to 300 
broadcasts per second) and is a 100baseT link with a small ethernet 
switch between my machines.  I got around 5800 kbytes/sec from the 
PC/104 card and around 7500 kbytes/second to the PC/104 card when 
running ttcp.  I know that this is completely different hardware than 
you're using, but it does illustrate that the RTEMS network stack is 
capable of better throughput than you're seeing.

Eric Norum <eric.norum at usask.ca>
Department of Electrical Engineering
University of Saskatchewan
Saskatoon, Canada.
Phone: (306) 966-5394   FAX:   (306) 966-5407

More information about the users mailing list