Re: [PATCH 2.6.18-rc4 00/10] Kernel memory leak detector 0.9

From: Michal Piotrowski
Date: Fri Aug 18 2006 - 17:35:55 EST


On 18/08/06, Catalin Marinas <catalin.marinas@xxxxxxxxx> wrote:
[snip]
to radix_tree as well).

cat /sys/kernel/debug/memleak + LTP + patching repo = oops?

BUG: unable to handle kernel paging request at virtual address 6b6b6b6b
printing eip:
c0177468
*pde = 00000000
Oops: 0000 [#1]
PREEMPT SMP
Modules linked in: jfs nls_base xfs reiserfs ext2 loop ipv6 w83627hf
hwmon_vid hwmon i2c_isa af_packet ip_conntrack_netbios_
ns ipt_REJECT xt_state ip_conntrack nfnetlink xt_tcpudp iptable_filter
ip_tables x_tables cpufreq_userspace p4_clockmod spee
dstep_lib binfmt_misc thermal processor fan container evdev
snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_seq_dummy snd_seq_o
ss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss sk98lin
snd_mixer_oss snd_pcm skge snd_timer snd i2c_i801 intel_agp
soundcore snd_page_alloc ide_cd agpgart cdrom rtc unix
CPU: 0
EIP: 0060:[<c0177468>] Not tainted VLI
EFLAGS: 00010097 (2.6.18-rc4 #174)
EIP is at memleak_scan+0x58/0x54e
eax: 00000000 ebx: 00000000 ecx: 00000000 edx: 6b6b6b6b
esi: 6b6b6b67 edi: 00000000 ebp: de1aaf28 esp: de1aaf10
ds: 007b es: 007b ss: 0068
Process cat (pid: 6409, ti=de1aa000 task=e23ee1b0 task.ti=de1aa000)
Stack: 00000000 00000282 00000000 00000000 00000000 c035e220 de1aaf3c c017797e
00001000 e1ae03d8 c035e220 de1aaf74 c0196654 00000000 00000000 00001000
0804f000 f08e0c9c c0120ac5 00000001 00000000 00000000 00001000 f08e0c9c
Call Trace:
[<c017797e>] memleak_seq_start+0x20/0xaa
[<c0196654>] seq_read+0xc8/0x246
[<c017988b>] vfs_read+0xa9/0x151
[<c0179bab>] sys_read+0x3b/0x60
[<c0105f3d>] sysenter_past_esp+0x56/0x8d
[<b7f7c410>] 0xb7f7c410
[<c0106fe3>] show_stack_log_lvl+0x87/0x8f
[<c0107148>] show_registers+0x11a/0x183
[<c0107334>] die+0x10f/0x1da
[<c0120c69>] do_page_fault+0x3ce/0x4a4
[<c0106b41>] error_code+0x39/0x40
[<c017797e>] memleak_seq_start+0x20/0xaa
[<c0196654>] seq_read+0xc8/0x246
[<c017988b>] vfs_read+0xa9/0x151
[<c0179bab>] sys_read+0x3b/0x60
[<c0105f3d>] sysenter_past_esp+0x56/0x8d
Code: 19 c0 85 c0 74 08 0f 0b f3 04 fe bd 31 c0 b8 01 00 00 00 e8 cb
cd fa ff b8 a0 e1 35 c0 e8 e8 32 18 00 8b 15 8c e1 35 c
0 8d 72 fc <8b> 46 04 0f 18 00 90 81 fa 8c e1 35 c0 0f 84 0a 03 00 00 8b 06
EIP: [<c0177468>] memleak_scan+0x58/0x54e SS:ESP 0068:de1aaf10
<6>note: cat[6409] exited with preempt_count 3
BUG: sleeping function called from invalid context at
/usr/src/linux-work8/mm/slab.c:2904
in_atomic():1, irqs_disabled():1
[<c0106e59>] show_trace_log_lvl+0x58/0x14c
[<c0106f5a>] show_trace+0xd/0xf
[<c010702c>] dump_stack+0x17/0x19
[<c0126dc6>] __might_sleep+0x92/0x9a
[<c01745dc>] kmem_cache_zalloc+0x28/0xf5
[<c0159eee>] taskstats_exit_alloc+0x30/0x6e
[<c012c844>] do_exit+0x10e/0x46a
[<c01073f7>] die+0x1d2/0x1da
[<c0120c69>] do_page_fault+0x3ce/0x4a4
[<c0106b41>] error_code+0x39/0x40
[<c0177468>] memleak_scan+0x58/0x54e
[<c017797e>] memleak_seq_start+0x20/0xaa
[<c0196654>] seq_read+0xc8/0x246
[<c017988b>] vfs_read+0xa9/0x151
[<c0179bab>] sys_read+0x3b/0x60
[<c0105f3d>] sysenter_past_esp+0x56/0x8d
[<b7f7c410>] 0xb7f7c410
[<c0106f5a>] show_trace+0xd/0xf
[<c010702c>] dump_stack+0x17/0x19
[<c0126dc6>] __might_sleep+0x92/0x9a
[<c01745dc>] kmem_cache_zalloc+0x28/0xf5
[<c0159eee>] taskstats_exit_alloc+0x30/0x6e
[<c012c844>] do_exit+0x10e/0x46a
[<c01073f7>] die+0x1d2/0x1da
[<c0120c69>] do_page_fault+0x3ce/0x4a4
[<c0106b41>] error_code+0x39/0x40
[<c017797e>] memleak_seq_start+0x20/0xaa
[<c0196654>] seq_read+0xc8/0x246
[<c017988b>] vfs_read+0xa9/0x151
[<c0179bab>] sys_read+0x3b/0x60
[<c0105f3d>] sysenter_past_esp+0x56/0x8d
BUG: spinlock lockup on CPU#1, growfiles/6257, c035e1a0
[<c0106e59>] show_trace_log_lvl+0x58/0x14c
[<c0106f5a>] show_trace+0xd/0xf
[<c010702c>] dump_stack+0x17/0x19
[<c01fedbd>] __spin_lock_debug+0x86/0x93
[<c01fee28>] _raw_spin_lock+0x5e/0x73
[<c02fa771>] _spin_lock+0x2a/0x2f
[<c0176877>] memleak_alloc+0x17b/0x277
[<c01745a6>] kmem_cache_alloc+0xc0/0xce
[<c018bc1a>] locks_alloc_lock+0x12/0x14
[<c018c7ce>] __posix_lock_file_conf+0x64/0x439
[<c018cbb3>] posix_lock_file+0x10/0x12
[<c018d8c4>] fcntl_setlk+0x114/0x20e
[<c0189a94>] do_fcntl+0xf0/0x140
[<c0189bad>] sys_fcntl64+0x6e/0x82
[<c0105f3d>] sysenter_past_esp+0x56/0x8d
[<b7f10410>] 0xb7f10410
[<c0106f5a>] show_trace+0xd/0xf
[<c010702c>] dump_stack+0x17/0x19
[<c01fedbd>] __spin_lock_debug+0x86/0x93
[<c01fee28>] _raw_spin_lock+0x5e/0x73
[<c02fa771>] _spin_lock+0x2a/0x2f
[<c0176877>] memleak_alloc+0x17b/0x277
[<c01745a6>] kmem_cache_alloc+0xc0/0xce
[<c018bc1a>] locks_alloc_lock+0x12/0x14
[<c018c7ce>] __posix_lock_file_conf+0x64/0x439
[<c018cbb3>] posix_lock_file+0x10/0x12
[<c018d8c4>] fcntl_setlk+0x114/0x20e
[<c0189a94>] do_fcntl+0xf0/0x140
[<c0189bad>] sys_fcntl64+0x6e/0x82
[<c0105f3d>] sysenter_past_esp+0x56/0x8d

A few minutes later system has died. list *0xc0177468 in gdb shows nothing.

(gdb) l *0xc0177468
0xc0177468 is in memleak_scan (include2/asm/processor.h:1276).
Line number 1271 out of range; include2/asm/processor.h has 746 lines.

(gdb) l *memleak_scan+0x58/0x54e
0xc0177410 is in memleak_scan (/usr/src/linux-work8/mm/memleak.c:1252).
1247 spin_unlock_irqrestore(&memleak_lock, flags);
1248 }
1249
1250 /* Scan the memory and print the orphan pointers */
1251 static void memleak_scan(void)
1252 {
1253 unsigned long flags;
1254 struct memleak_pointer *pointer, *tmp;
1255 #ifdef CONFIG_DEBUG_MEMLEAK_TASK_STACKS
1256 struct task_struct *task;

http://www.stardust.webpages.pl/files/o_bugs/kmemleak-0.9/kml-dmesg3


--
Catalin


Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)
-
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/