Re: Memory leak in 2.6.11-rc1?
From: Russell King <hidden>
Date: 2005-01-23 20:03:34
Also in:
lkml
On Sun, Jan 23, 2005 at 02:32:48AM -0800, Andrew Morton wrote:
Jens Axboe [off-list ref] wrote:quoted
But I'm still stuck with all of my ram gone after a 600MB fillmem, half of it is just in swap.Well. Half of it has gone so far ;)quoted
Attaching meminfo and sysrq-m after fillmem.(I meant a really big fillmem: a couple of 2GB ones. Not to worry.) It's not in slab and the pagecache and anonymous memory stuff seems to be working OK. So it has to be something else, which does a bare __alloc_pages(). Low-level block stuff, networking, arch code, perhaps. I don't think I've ever really seen code to diagnose this. A simplistic approach would be to add eight or so ulongs into struct page, populate them with builtin_return_address(0...7) at allocation time, then modify sysrq-m to walk mem_map[] printing it all out for pages which have page_count() > 0. That'd find the culprit.
I think I may be seeing something odd here, maybe a possible memory leak. The only problem I have is wondering whether I'm actually comparing like with like. Maybe some networking people can provide a hint? Below is gathered from 2.6.11-rc1. bash-2.05a# head -n2 /proc/slabinfo slabinfo - version: 2.1 # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 115 ip_dst_cache 759 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 117 ip_dst_cache 770 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 133 ip_dst_cache 775 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 18 ip_dst_cache 664 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 20 ip_dst_cache 664 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 22 ip_dst_cache 673 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 23 ip_dst_cache 670 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 24 ip_dst_cache 675 885 256 15 1 bash-2.05a# cat /proc/net/rt_cache | wc -l; grep ip_dst /proc/slabinfo 24 ip_dst_cache 669 885 256 15 1 I'm fairly positive when I rebooted the machine a couple of days ago, ip_dst_cache was significantly smaller for the same number of lines in /proc/net/rt_cache. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core