Re: WARNING: kmemcheck: Caught 32-bit read from uninitialized memory (f6f6e1a4), by kmemleak's scan_block()

From: Vegard Nossum
Date: Tue Aug 25 2009 - 04:09:44 EST


2009/8/25 Ingo Molnar <mingo@xxxxxxx>:
>
> FYI, -tip testing triggered the following kmemcheck warning in
> kmemleak:
>
> PM: Adding info for No Bus:vcsa7
> WARNING: kmemcheck: Caught 32-bit read from uninitialized memory (f6f6e1a4)
> d873f9f600000000c42ae4c1005c87f70000000070665f666978656400000000
> Âi i i i u u u u i i i i i i i i i i i i i i i i i i i i i u u u
> Â Â Â Â ^
>
> Pid: 3091, comm: kmemleak Not tainted (2.6.31-rc7-tip #1303) P4DC6
> EIP: 0060:[<c110301f>] EFLAGS: 00010006 CPU: 0
> EIP is at scan_block+0x3f/0xe0
> EAX: f40bd700 EBX: f40bd780 ECX: f16b46c0 EDX: 00000001
> ESI: f6f6e1a4 EDI: 00000000 EBP: f10f3f4c ESP: c2605fcc
> ÂDS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> CR0: 8005003b CR2: e89a4844 CR3: 30ff1000 CR4: 000006f0
> DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
> DR6: ffff4ff0 DR7: 00000400
> Â[<c110313c>] scan_object+0x7c/0xf0
> Â[<c1103389>] kmemleak_scan+0x1d9/0x400
> Â[<c1103a3c>] kmemleak_scan_thread+0x4c/0xb0
> Â[<c10819d4>] kthread+0x74/0x80
> Â[<c10257db>] kernel_thread_helper+0x7/0x3c
> Â[<ffffffff>] 0xffffffff
> kmemleak: 515 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
> kmemleak: 42 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
>
> config attached. (And this is the first documented case of a kmem
> civil war i guess ;-)

Already the patch to make kmemcheck and kmemleak mutually exclusive is
underway. It is not surprising that kmemleak is scanning uninitialized
memory. But if you say that you have tried it before, it is strange
that it didn't appear until now.

In any case, I don't think it is very productive to run them both at
the same time, simply because kmemcheck slows every memory access down
so much and scanning memory doesn't exactly help that. It _could_ be
useful to have them compiled into the same kernel, though, e.g. a
distro "-debug" kernel.

Maybe you can just add the "depends on !KMEMLEAK" to CONFIG_KMEMCHECK
in tip/out-of-tree for now?


Vegard
--
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/