This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
problems with MBUFs (TCP/IP stack)
- TO: <ecos-discuss at sourceware dot cygnus dot com>
- Subject: [ECOS] problems with MBUFs (TCP/IP stack)
- From: "Marco Monguzzi" <marco at sitek dot it>
- Date: Sat, 8 Jul 2000 14:41:07 +0200
Hello All.
we are running eCos (with the TCP/IP package) on a MIPS R3041 based board.
The board is equipped with a CS8900A ethernet controller. The ethernet
driver has been written starting from the one that comes for the EDB7xxx
board.
Althought the Net subsystem passed all the package's tests, we are
experiencing severe problems with MBUFs handling. They are driving out of
time our project delivery date. Any help would be more than welcome...
It is possible to explain the problem using a simple program: attached
you'll find the eCos "server test" (file server_test.c) modified to show the
MBUF counter for each incoming connection. Each time we connect to the
server with telnet, the counter becames bigger (one more than the previous
iteration). Repeating the trial several times (around 60 times), we get the
signaling of "panic: eth_recv out of MBUFs" (with the net v1_0b1 package).
We also tried with a snapshot of the net package from CVS (downloaded on
June 6, 2000. We patched kapi.h and kapi.cxx to support
cyg_scheduler_safe_lock() and cyg_scheduler_read_lock()); the system now
tolerates the problem and does not halt but the behavior is the same:
"warning: eth_recv out of MBUFs".
We captured the packets exchanged between the server (192.168.0.116) the
client used to run telnet (a Linux box. 192.168.0.10). You'll find them
attached in packets.zip.
Notice: commenting the write() in server_test.c (line 115), i.e. we do not
send back the string "hello etc..", the MBUF counter does not show this
behaviour any more. It seems like the mbufs are not freed from the TCP
queue.
Anybody experienced something similar? Any suggestion about how we should
tackle this problem?
All the best,
Marco
packets.zip
server_test.zip