Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752119AbZGaKRN (ORCPT ); Fri, 31 Jul 2009 06:17:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752113AbZGaKRM (ORCPT ); Fri, 31 Jul 2009 06:17:12 -0400 Received: from cam-admin0.cambridge.arm.com ([193.131.176.58]:52722 "EHLO cam-admin0.cambridge.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751630AbZGaKRK (ORCPT ); Fri, 31 Jul 2009 06:17:10 -0400 Subject: Re: Possible memory leak via alloc_pid() From: Catalin Marinas To: Oleg Nesterov Cc: Andrew Morton , linux-kernel@vger.kernel.org, "Eric W. Biederman" , Sukadev Bhattiprolu , "Serge E. Hallyn" In-Reply-To: <20090730212956.GA26863@redhat.com> References: <20090729170315.f62066c0.akpm@linux-foundation.org> <20090730212956.GA26863@redhat.com> Content-Type: text/plain Organization: ARM Ltd Date: Fri, 31 Jul 2009 11:16:38 +0100 Message-Id: <1249035398.29967.8.camel@pc1117.cambridge.arm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 31 Jul 2009 10:16:39.0097 (UTC) FILETIME=[FDFEAA90:01CA11C7] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 31338 Lines: 477 On Thu, 2009-07-30 at 23:29 +0200, Oleg Nesterov wrote: > On 07/29, Andrew Morton wrote: > > On Wed, 8 Jul 2009 22:33:31 +0100 > > Catalin Marinas wrote: > > > This is the gdm fork for starting Xorg (with pid 2739). It first > > > logged me in automatically, after which I logged out and gdm started > > > another Xorg. The pid structure for the first Xorg is reported as a > > > leak. The Xorg with pid 2739 is no longer present on my system. > > > > > > Using gdb vmlinux /proc/kcore shows that the pid->count is 2, so > > > that's why it probably wasn't freed by put_pid(): > > > > > > (gdb) print ({struct pid}0xc307aa00) > > > $20 = {count = {counter = 2}, level = 0, tasks = {{first = 0x0}, { > > > first = 0x0}, {first = 0x0}}, rcu = {next = 0xc24bfd64, > > > func = 0xc0154e90 }, numbers = {{nr = 2739, > > > ns = 0xc0737540, pid_chain = {next = 0x0, pprev = 0x200200}}}} > > > > > > Note that kmemleak is aware of and scans pid_hash (which was recorded > > > in kmemleak as a 16KB object). > > This pid is detached and unhanshed. God knows who did the unbalanced > get_pid(). > > Since you can reproduce the problem easily, perhaps you can use the > hack above to track get/put ? > > $ echo pid_of_Xorg > /proc/sys/kernel/xxx Below is the minicom capture. By the time Xorg dies, the count is 2. When logging out, there are two counter incrementing events via sys_wait4 and sys_ioctl, thoush I'm not sure whether they are unbalanced. It was tested on an ARM platform. pgrep Xorg 1519 10:~# pgrep Xorg > /proc/sys/kernel/xxx XXXXX(1519) ==22 XXXXX(1519) ++22 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (tty_get_pgrp+0x29/0x4c) [] (tty_get_pgrp+0x29/0x4c) from [] (do_task_stat+0xc3/0x3c4) [] (do_task_stat+0xc3/0x3c4) from [] (proc_tgid_stat+0xb/0xc) [] (proc_tgid_stat+0xb/0xc) from [] (proc_single_show+0x35/0x5c) [] (proc_single_show+0x35/0x5c) from [] (seq_read+0x125/0x294) [] (seq_read+0x125/0x294) from [] (vfs_read+0x69/0x11c) [] (vfs_read+0x69/0x11c) from [] (sys_read+0x2d/0x48) [] (sys_read+0x2d/0x48) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --23 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (do_task_stat+0xd3/0x3c4) [] (do_task_stat+0xd3/0x3c4) from [] (proc_tgid_stat+0xb/0xc) [] (proc_tgid_stat+0xb/0xc) from [] (proc_single_show+0x35/0x5c) [] (proc_single_show+0x35/0x5c) from [] (seq_read+0x125/0x294) [] (seq_read+0x125/0x294) from [] (vfs_read+0x69/0x11c) [] (vfs_read+0x69/0x11c) from [] (sys_read+0x2d/0x48) [] (sys_read+0x2d/0x48) from [] (ret_fast_syscall+0x1/0x40) 10:~# ps -e PID TTY TIME CMD 1 ? 00:00:02 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 ksoftirqd/0 4 ? 00:00:00 watchdog/0 5 ? 00:00:00 rcu_sched_grace 6 ? 00:00:00 events/0 7 ? 0:00:00 khelper 10 ? 00:00:00 async/mgr 136 ? 00:00:00 kblockd/0 142 ? 00:00:00 ata/0 143 ? 00:00:00 ata_aux 147 ? 00:00:00 ksuspend_usbd 151 ? 00:00:00 khubd 154 ? 00:00:00 kseriod 160 ? 00:00:00 kmmcd 185 ? 00:00:00 khungtaskd 186 ? 00:00:00 pdflush 187 ? 00:00:00 pdflush 188 ? 00:00:00 kswapd0 275 ? 00:00:00 aio/0 294 ? 00:00:01 nfsiod 416 ? 00:00:00 kapmd 436 ? 00:00:00 scsi_eh_0 449 ? 00:00:00 mtdblockd 470 ? 00:00:00 kpsmoused 503 ? 00:00:00 usbhid_resumer 519 ? 00:00:04 rpciod/0 527 ? 00:00:25 kmemleak 607 ? 00:00:04 udevd 1141 ? 00:00:00 portmap 1154 ? 00:00:00 rpc.statd 1288 ? 00:00:00 dbus-daemon 1300 ? 00:00:00 lpd 1316 ? 00:00:00 ntpd 1330 ? 00:00:01 hald 1331 ? 00:00:00 hald-runner 1361 ? 00:00:00 gdm 1391 tty1 00:00:00 getty 1393 ttyAMA0 00:00:00 login 1395 ttyAMA1 00:00:00 getty 1405 ttyAMA0 00:01:02 bash 1419 ? 00:00:05 gdm 1426 tty2 00:00:00 getty 1519 tty3 00:00:01 Xorg 1527 ? 00:00:25 gdmgreeter 1535 ttyAMA0 00:00:00 ps # # CM: Xorg logout # 10:~# XXXXX(1519) ++22 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (find_get_pid+0x25/0x44) [] (find_get_pid+0x25/0x44) from [] (sys_wait4+0x55/0x84) [] (sys_wait4+0x55/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --23 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (__fput+0xdd/0x160) [] (__fput+0xdd/0x160) from [] (fput+0x1f/0x20) [] (fput+0x1f/0x20) from [] (filp_close+0x39/0x40) [] (filp_close+0x39/0x40) from [] (sys_close+0x65/0x98) [] (sys_close+0x65/0x98) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --22 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (vt_ioctl+0xbb5/0x131c) [] (vt_ioctl+0xbb5/0x131c) from [] (tty_ioctl+0x5d9/0x620) [] (tty_ioctl+0x5d9/0x620) from [] (vfs_ioctl+0x15/0x50) [] (vfs_ioctl+0x15/0x50) from [] (do_vfs_ioctl+0x3a1/0x3c8) [] (do_vfs_ioctl+0x3a1/0x3c8) from [] (sys_ioctl+0x23/0x34) [] (sys_ioctl+0x23/0x34) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) ++21 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (vt_ioctl+0xbcf/0x131c) [] (vt_ioctl+0xbcf/0x131c) from [] (tty_ioctl+0x5d9/0x620) [] (tty_ioctl+0x5d9/0x620) from [] (vfs_ioctl+0x15/0x50) [] (vfs_ioctl+0x15/0x50) from [] (do_vfs_ioctl+0x3a1/0x3c8) [] (do_vfs_ioctl+0x3a1/0x3c8) from [] (sys_ioctl+0x23/0x34) [] (sys_ioctl+0x23/0x34) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --22 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --21 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --20 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --19 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --18 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --17 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --16 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --15 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --14 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --13 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --12 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --11 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --10 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --9 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --8 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --7 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (__shrink_dcache_sb+0x191/0x1f4) [] (__shrink_dcache_sb+0x191/0x1f4) from [] (shrink_dcache_parent+0x25/0xb0) [] (shrink_dcache_parent+0x25/0xb0) from [] (proc_flush_task+0x79/0x19c) [] (proc_flush_task+0x79/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --6 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (proc_delete_inode+0x19/0x34) [] (proc_delete_inode+0x19/0x34) from [] (generic_delete_inode+0x67/0xc4) [] (generic_delete_inode+0x67/0xc4) from [] (iput+0x3f/0x4c) [] (iput+0x3f/0x4c) from [] (dentry_iput+0x75/0x88) [] (dentry_iput+0x75/0x88) from [] (d_kill+0x21/0x40) [] (d_kill+0x21/0x40) from [] (dput+0xd9/0xf0) [] (dput+0xd9/0xf0) from [] (proc_flush_task+0xb7/0x19c) [] (proc_flush_task+0xb7/0x19c) from [] (release_task+0x27/0x380) [] (release_task+0x27/0x380) from [] (wait_consider_task+0x4fd/0x7b8) [] (wait_consider_task+0x4fd/0x7b8) from [] (do_wait+0x89/0x1b0) [] (do_wait+0x89/0x1b0) from [] (sys_wait4+0x73/0x84) [] (sys_wait4+0x73/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --5 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (sys_wait4+0x7b/0x84) [] (sys_wait4+0x7b/0x84) from [] (ret_fast_syscall+0x1/0x40) XXXXX(1519) --4 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (delayed_put_pid+0x9/0xc) [] (delayed_put_pid+0x9/0xc) from [] (rcu_process_callbacks+0x43/0x50) [] (rcu_process_callbacks+0x43/0x50) from [] (__do_softirq+0x75/0xe8) [] (__do_softirq+0x75/0xe8) from [] (irq_exit+0x3d/0x4c) [] (irq_exit+0x3d/0x4c) from [] (_text+0x3d/0x50) [] (_text+0x3d/0x50) from [] (__irq_svc+0x4d/0xbc) Exception stack(0xc02eff78 to 0xc02effc0) ff60: 00000001 00000004 ff80: c02effa8 00249455 c02ee000 c0316f20 c0017c9c c02f2b98 70015e6c 411fc081 ffa0: 0000001f 00000000 c02ee040 c02effc0 c004c753 c0028c0e 00000033 ffffffff [] (__irq_svc+0x4d/0xbc) from [] (default_idle+0x1e/0x20) [] (default_idle+0x1e/0x20) from [] (cpu_idle+0x33/0x7c) [] (cpu_idle+0x33/0x7c) from [] (rest_init+0x51/0x64) [] (rest_init+0x51/0x64) from [] (start_kernel+0x1b5/0x1f8) [] (start_kernel+0x1b5/0x1f8) from [<7000803b>] (0x7000803b) XXXXX(1519) --3 [] (unwind_backtrace+0x1/0x80) from [] (dump_stack+0xb/0xc) [] (dump_stack+0xb/0xc) from [] (put_pid+0x19/0x48) [] (put_pid+0x19/0x48) from [] (vt_ioctl+0xbb5/0x131c) [] (vt_ioctl+0xbb5/0x131c) from [] (tty_ioctl+0x5d9/0x620) [] (tty_ioctl+0x5d9/0x620) from [] (vfs_ioctl+0x15/0x50) [] (vfs_ioctl+0x15/0x50) from [] (do_vfs_ioctl+0x3a1/0x3c8) [] (do_vfs_ioctl+0x3a1/0x3c8) from [] (sys_ioctl+0x23/0x34) [] (sys_ioctl+0x23/0x34) from [] (ret_fast_syscall+0x1/0x40) 10:~# echo scan > /sys/kernel/debug/kmemleak kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak) 10:~# cat /sys/kernel/debug/kmemleak unreferenced object 0xdfa30de0 (size 48): comm "gdm", pid 1419, jiffies 53918 hex dump (first 32 bytes): 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 04 24 36 de 25 2a 04 c0 .........$6.%*.. backtrace: [] __save_stack_trace+0x17/0x1c [] create_object+0xcd/0x188 [] kmemleak_alloc+0x1b/0x3c [] kmem_cache_alloc+0xa5/0xb4 [] alloc_pid+0x11/0x22c [] copy_process+0x831/0xc90 [] do_fork+0xeb/0x228 [] sys_clone+0x1d/0x20 [] ret_fast_syscall+0x1/0x40 [] 0xffffffff 10:~# -- Catalin -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/