All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: linux-kernel@vger.kernel.org, akpm@osdl.org
Subject: Re: [PATCH] Fix "notes" kobject leak
Date: Mon, 15 Sep 2008 16:40:50 -0700	[thread overview]
Message-ID: <20080915234050.GA10876@suse.de> (raw)
In-Reply-To: <20080915233504.GB21012@x200.localdomain>

On Tue, Sep 16, 2008 at 03:35:04AM +0400, Alexey Dobriyan wrote:
> On Mon, Sep 15, 2008 at 03:53:22PM -0700, Greg KH wrote:
> > On Sun, Sep 14, 2008 at 12:42:25PM +0400, Alexey Dobriyan wrote:
> > > On Fri, Sep 12, 2008 at 08:51:05AM -0700, Greg KH wrote:
> > > > On Sat, Sep 06, 2008 at 09:45:22AM +0400, Alexey Dobriyan wrote:
> > > > > On Fri, Aug 29, 2008 at 10:43:43PM -0700, Greg KH wrote:
> > > > > > On Sat, Aug 30, 2008 at 08:42:46AM +0400, Alexey Dobriyan wrote:
> > > > > > > 	size-32: 3511 kvasprintf+0x57/0x90
> > > > > > > 	size-64: 3059 kobject_create+0x1c/0x40
> > > > > > > 
> > > > > > > These two buddies increase after every "modprobe; rmmod" sequence.
> > > > > > 
> > > > > > Do they also do so in mainline?
> > > > > 
> > > > > Yep, same bug in mainline.
> > > > 
> > > > Not good.  Does 2.6.26 show this as well?
> > > 
> > > Uh-oh, this was actually 10-minute exercise.
> > > 
> > > 
> > > 
> > > [PATCH] Fix "notes" kobject leak
> > > 
> > > It happens every rmmod if KALLSYMS=y and SYSFS=y.
> > > 
> > > 	# modprobe foo
> > > 
> > > kobject: 'foo' (ffffffffa00743d0): kobject_add_internal: parent: 'module', set: 'module'
> > > kobject: 'holders' (ffff88017e7c5770): kobject_add_internal: parent: 'foo', set: '<NULL>'
> > > kobject: 'foo' (ffffffffa00743d0): kobject_uevent_env
> > > kobject: 'foo' (ffffffffa00743d0): fill_kobj_path: path = '/module/foo'
> > > kobject: 'notes' (ffff88017fa9b668): kobject_add_internal: parent: 'foo', set: '<NULL>'
> > > 	  ^^^^^
> > > 
> > > 	# rmmod foo
> > > 
> > > kobject: 'holders' (ffff88017e7c5770): kobject_cleanup
> > > kobject: 'holders' (ffff88017e7c5770): auto cleanup kobject_del
> > > kobject: 'holders' (ffff88017e7c5770): calling ktype release
> > > kobject: (ffff88017e7c5770): dynamic_kobj_release
> > > kobject: 'holders': free name
> > > kobject: 'foo' (ffffffffa00743d0): kobject_cleanup
> > > kobject: 'foo' (ffffffffa00743d0): does not have a release() function, it is broken and must be fixed.
> > > kobject: 'foo' (ffffffffa00743d0): auto cleanup 'remove' event
> > > kobject: 'foo' (ffffffffa00743d0): kobject_uevent_env
> > > kobject: 'foo' (ffffffffa00743d0): fill_kobj_path: path = '/module/foo'
> > > kobject: 'foo' (ffffffffa00743d0): auto cleanup kobject_del
> > > kobject: 'foo': free name
> > > 
> > > 	[whooops]
> > > 
> > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > > ---
> > > 
> > >  kernel/module.c |    1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > --- a/kernel/module.c
> > > +++ b/kernel/module.c
> > > @@ -1174,6 +1174,7 @@ static void free_notes_attrs(struct module_notes_attrs *notes_attrs,
> > >  			sysfs_remove_bin_file(notes_attrs->dir,
> > >  					      &notes_attrs->attrs[i]);
> > >  		kobject_del(notes_attrs->dir);
> > > +		kobject_put(notes_attrs->dir);
> > 
> > Hm, no, that should just be a call to kobject_put() instead of
> > kobject_del(), can you try that instead and see if that solves the issue
> > (am at a conference and can't test that at the moment, sorry.)
> 
> Why?! kobject_del() puts parent kobject.

And that's about it (well, it also tears down the sysfs stuff.)

If you call kobject_put() instead, and it's the last put, it will also
call kobject_del() and do everything else that it needs to do.

Try it and let me know if I'm right or not :)

thanks,

greg k-h

  reply	other threads:[~2008-09-15 23:58 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-30  4:42 kobject leak in next-20080829 Alexey Dobriyan
2008-08-30  5:43 ` Greg KH
2008-09-06  5:45   ` kobject leak in next-20080829 (and mainline) Alexey Dobriyan
2008-09-12 15:51     ` Greg KH
2008-09-14  8:42       ` [PATCH] Fix "notes" kobject leak Alexey Dobriyan
2008-09-15 22:53         ` Greg KH
2008-09-15 23:35           ` Alexey Dobriyan
2008-09-15 23:40             ` Greg KH [this message]
2008-09-23 19:51               ` [PATCH v2] " Alexey Dobriyan
2008-09-23 20:56                 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080915234050.GA10876@suse.de \
    --to=gregkh@suse.de \
    --cc=adobriyan@gmail.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.