Re: kmemleak for MIPS

From: Catalin Marinas
Date: Wed Mar 30 2011 - 05:59:11 EST


On Wed, 2011-03-30 at 10:54 +0100, Daniel Baluta wrote:
> >> unreferenced object 0x8f90d000 (size 4096):
> >> comm "swapper", pid 1, jiffies 4294937330 (age 815.000s)
> >> hex dump (first 32 bytes):
> >> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> >> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> >> backtrace:
> >> [<80529644>] alloc_large_system_hash+0x2f8/0x410
> >> [<805383b4>] udp_table_init+0x4c/0x158
> >> [<805384dc>] udp_init+0x1c/0x94
> >> [<8053889c>] inet_init+0x184/0x2a0
> >> [<80100584>] do_one_initcall+0x174/0x1e0
> >> [<8051f348>] kernel_init+0xe4/0x174
> >> [<80103d4c>] kernel_thread_helper+0x10/0x18
> >
> > If you for the kmemleak scan (via echo) a few times, do you get more
> > leaks? The udp_table_init() function looks like it could leak some
> > memory but I haven't seen it before. I'm not sure whether this is a
> > false positive or a real leak.
>
> Looking again at udp_init_table it seem that a memory leak is possible.
> Could you post your .config and the full output of dmesg after booting.
>
> A situation where CONFIG_BASE_SMALL is 0, and
> table->mask < UDP_HTABLE_SIZE_MIN - 1 would lead
> to a memory leak.

It's worth printing the table->mask on MIPS as well. I think have the
same configuration on ARM and put some printk's but the table->mask is
set to higher value and the second if condition is false. The checks
could be simply reordered but I don't know the reasoning behind the
current code sequence (I cc'ed Eric).

--
Catalin


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/