Re: Linux 2.6.15.2

2 messages, 2 authors, 2006-02-04 · open the first message on its own page

Re: Linux 2.6.15.2

From: Andrew Morton <hidden>
Date: 2006-02-03 19:14:52

Holger Eitzenberger [off-list ref] wrote:
On Mon, Jan 30, 2006 at 11:34:27PM -0800, Andrew Morton wrote:
quoted
- A skbuff_head_cache leak causes oom-killings.

All of these only seem to affect a small minority of machines.
Hi,

I have searched for a description for the above mentioned bug report,
but havent found any.  Can you tell me?
http://www.mail-archive.com/netdev@vger.kernel.org/msg06355.html
The reason why I am asking that I am facing a similar problem on
kernel 2.6.10.  During performance tests (Intel XEON, SMP, PCI-X,
e1000, 2 - 4 Gig RAM) the machine was out of memory.

Tests showed that LowFree went linearly down to a few megabytes, where
most of the memory was used in skb_head_cache and size-1024 slab
caches.  These two summed up to ~270 MG, which was the reason for
that.

/proc/net/tcp showed that most of the memory was stuck in the RX
queues of some processes (two processes with ~1000 sockets each).

A look into /proc/sys/net/ipv4/tcp_mem showed that that the values in
there were way to high.  I hope that a reduction of these values will
help (not done yet).
Sounds different.  Please test a more recent kernel and if the problem is
still there, send a report to linux-kernel and cc netdev@vger.kernel.org. 
Include the contents of /proc/meminfo and /proc/slabinfo.  Thanks.

Re: Linux 2.6.15.2

From: Holger Eitzenberger <hidden>
Date: 2006-02-04 13:31:04

On Fri, Feb 03, 2006 at 11:14:14AM -0800, Andrew Morton wrote:
http://www.mail-archive.com/netdev@vger.kernel.org/msg06355.html
quoted
A look into /proc/sys/net/ipv4/tcp_mem showed that that the values in
there were way to high.  I hope that a reduction of these values will
help (not done yet).
Sounds different.  Please test a more recent kernel and if the problem is
still there, send a report to linux-kernel and cc netdev@vger.kernel.org. 
Include the contents of /proc/meminfo and /proc/slabinfo.  Thanks.
I solved the issue.

Recent kernels have alloc_large_system_hash() exactly for that, and
tcp_init() uses it.  It has nr_all_pages and nr_kernel_pages to
determine the actual size of usable RAM, whereas 2.6.10 just uses
num_physpages.  That's the reason why the values in tcp_mem are way
too high on machines with 3-4 Gig RAM.

Thanks.  /holger


-- 
ICQ 2882018 ++ Jabber: octavian@amessage.de ++
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help