From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [Bugme-new] [Bug 12754] New: inotify doesn't free memory allocated to watches Date: Tue, 24 Feb 2009 21:38:00 +0000 Message-ID: <20090224213800.GI28946@ZenIV.linux.org.uk> References: <20090224130523.f6c4c450.akpm@linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: russell@rickstewart.com, bugme-daemon@bugzilla.kernel.org, linux-fsdevel@vger.kernel.org, John McCutchan , Robert Love To: Andrew Morton Return-path: Received: from zeniv.linux.org.uk ([195.92.253.2]:35639 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753631AbZBXViG (ORCPT ); Tue, 24 Feb 2009 16:38:06 -0500 Content-Disposition: inline In-Reply-To: <20090224130523.f6c4c450.akpm@linux-foundation.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, Feb 24, 2009 at 01:05:23PM -0800, Andrew Morton wrote: > > We have webcams that take photos every 5 minutes. I run a daemon > > that detects the creation of a new webcam photo then makes a thumbnail > > of it. Eventually it stopped working. I figured out that I could > > not create new watches: inotify_add_watch reported "No space left on device". > > I create all the watches with the ONESHOT parameter so they are deleted > > as soon as they are triggered. When I make it display the watch number > > it's always 3. A new watch is added only when the old watch has been > > triggered. inotify isn't recovering the memory from deleted watches. > > So we have a serious leak. > > A few fixes have gone into inotify since 2.6.28. I don't immediately > see any which would address this bug, but it would be worth testing > 2.6.29-rc6 if poss, please. Hopefully those fixes also got fed back > into 2.6.28.x, but that path is somewhat unreliable. > > If it isn't yet fixed then I'm not sure how to get it fixed, really - > inotify development is a bit quiet. Build with CONFIG_DEBUG_SLAB_LEAK (and yes, that means CONFIG_SLAB), reproduce that and see what's in /proc/slab_allocators. FWIW, we probably ought to port that stuff to SLUB et.al., but that's a different story...