This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
RE: network problem more info
- From: "Rick Davis" <rickdavisjr at comcast dot net>
- To: "'Andrew Lunn'" <andrew at lunn dot ch>
- Cc: "'Ecos-Discuss'" <ecos-discuss at ecos dot sourceware dot org>
- Date: Fri, 31 Aug 2007 08:40:18 -0400
- Subject: RE: [ECOS] network problem more info
- References: <009401c7ebb5$65c20310$31460930$@net> <20070831122659.GA3789@lunn.ch>
Andrew,
I finally found the problem.
Bsd_accept in net\bsd_tcpip\current\src\sys\kern\sockio.c wasn't freeing sa.
Add the following at or around line 447. It has "done:" label on the "#else"
portion of an "#if 0"
if (sa)
FREE (sa, M_SONAME);
Rick Davis
-----Original Message-----
From: Andrew Lunn [mailto:andrew@lunn.ch]
Sent: Friday, August 31, 2007 8:27 AM
To: Rick Davis
Cc: Ecos-Discuss
Subject: Re: [ECOS] network problem more info
On Fri, Aug 31, 2007 at 05:57:51AM -0400, Rick Davis wrote:
> To try to narrow down my memory issue. I wrote a client program that just
> creates a socket, connects to port 80 and then shuts down and closes the
> socket. Every time I run it 32 bytes of memory is allocated. If I keep
> running the application the memory is consumed. If I let thing sit for
> minutes, some of the memory is returned.
This part is normal behaviour. The server socket is not closed
immediately. It hangs around for a while so that it can eat any old
retry packets for the connection which are still flying around the
network. What you don't want is these old packets being injected into
a new connection stream.
What you need to do is run the test as before. Then stop the client
and watch the memory usage. It should slowly decrease as these old
sockets are freed after a timeout. Once it is stopped freeing, reached
a steady state, you can then investigate what looks like lost memory.
You probably want to go searching in the ecos mail archive, eg:
http://ecos.sourceware.org/ml/ecos-discuss/2003-10/msg00380.html
and
http://www.cygwin.com/ml/ecos-discuss/2003-12/msg00181.html
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss