Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Nov 1997 13:45:38 +0900
From:      Kenjiro Cho <kjc@csl.sony.co.jp>
To:        Antonio Luis Alves <aalves@dei.uc.pt>
Cc:        freebsd-atm@FreeBSD.ORG
Subject:   Re: ATM driver & udp stream 
Message-ID:  <199711120445.NAA24120@hotaka.csl.sony.co.jp>
In-Reply-To: Your message of "Wed, 12 Nov 1997 03:06:46 GMT." <Pine.BSF.3.96.971112005854.20573A-100000@zorg.dei.uc.pt> 

next in thread | previous in thread | raw e-mail | index | archive | help

>> All was working well until I made a UDP stream test. The sender was a
>> Pentium 233mmx and on the receive side a Pentium 166. The test is a normal
>> netperf UDP_STREAM with default values for the datagram, which is the max
>> udp datagram 9216. The driver crashes at the pdu receive routine when
>> accessing the segments which form the pdu. With the debugger I can see that
>> the mbuf handles are correct but the data on the mbuf is not. Some times
>> the m_type is MT_FREE and m->next as got a valid pointer on it, and other
>> times all the members of the mbuf are zero. On a normal situation the
>> mbufs would be of type MT_DATA, and correctly initialized with the
>> pointers to the external free and reference function, m_len, ext_size and
>> ext_buffer.
>> From the firmware guide it says the card never touches the mbuf, it just
>> pass the mbuf handle received from the supply routine to the segments on
>> the received pdu descriptor.

It sounds familiar to me..., so you might want to take a look at the
following possibility. 

I had a similar experience with Chuck Cranor's ATM driver long time
ago.  It turns out that, under heavy load, a circular list holding
pointers to mbufs gets completely full and wrapped around.  As a
result, a wrong mbuf in use gets freed.  The system crashes after a
while when it refers to the misplaced mbuf.  

IMO, it's a very bad idea to put a free list chain at the top of a
mbuf cluster data area when a mbuf is on the free list.  It is very
hard to debug if something goes wrong.

--kj



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711120445.NAA24120>