On Wed, 4 Mar 2015 12:59:23 -0500 Jeff Layton <jlayton@xxxxxxxxxxxxxxx> wrote: > On Wed, 4 Mar 2015 16:32:57 +0100 > Daniel Wagner <daniel.wagner@xxxxxxxxxxxx> wrote: > > > On 03/04/2015 04:00 PM, Boaz Harrosh wrote: > > > On 03/04/2015 04:20 PM, Daniel Wagner wrote: > > >> On 03/03/2015 01:55 AM, Jeff Layton wrote: > > >>> On Mon, 2 Mar 2015 15:25:12 +0100 > > >>> Daniel Wagner <daniel.wagner@xxxxxxxxxxxx> wrote: > > >>> > > > <> > > >> I have fixed that stuff and now I am testing it. Though it seems > > >> that there is a memory leak which can be triggered with > > >> > > >> while true; rm -rf /tmp/a; ./lease02 /tmp/a; done > > >> > > >> and this happens also without any of my patches. Still trying to > > >> figure out what's happening. Hopefully I just see a ghost. > > >> > > >> slabtop tells me that ftrace_event_field is constantly growing: > > >> > > > > > > check out the Kernel's leak detector it is perfect in showing you > > > what was the exact call stack of the leaked memory. > > > > Thanks for the tip. Will use it in future :) > > > > I have done a quick bisect limit the search on fs/locks.c. > > I suspect that the file_lock_context refactoring is the source of the leak. > > bisect agrees with me > > > > > > 8634b51f6ca298fb8b07aa4847340764903533ab is the first bad commit > > commit 8634b51f6ca298fb8b07aa4847340764903533ab > > Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx> > > Date: Fri Jan 16 15:05:55 2015 -0500 > > > > locks: convert lease handling to file_lock_context > > > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxxxxxxx> > > Acked-by: Christoph Hellwig <hch@xxxxxx> > > > > :040000 040000 4114db9392dc4dadb30664b71a954321e5e87bab 5b9abbaf1808a7c926c09fa2164044e0cc26fd54 M fs > > :040000 040000 bd569f527a195edf673c4f7d0e80bf356c7f8d1b 6362646e04dd83efc1a9e92877900797ac879e9a M include > > > > Thanks. I'll take a look. > Huh. I'm was a bit surprised by this as I didn't really touch how the fasync entries get handled. I added a bit of printk debugging (primitive, I know...) and I see this: [ 458.715319] lease_modify: calling fasync_helper on ffff880035a942d0 So, the fasync_helper getting called on the fasync entry, but it's definitely not getting freed. When I look at the object in the debugger, it looks like call_rcu has been called on it though: fa_file = 0x0, fa_rcu = { next = 0xffff8800ccd6a8a0, func = 0xffffffff8122b1c0 <fasync_free_rcu> } ...it's almost like the rcu grace period isn't ending properly? I'll keep poking at though to see if I can figure out what's going wrong. -- Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html