From: Alex Chiang <achiang@hp.com>
To: Greg KH <greg@kroah.com>
Cc: kay.sievers@vrfy.org, rjw@sisk.pl, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org
Subject: Re: kobj refcounting weirdness
Date: Mon, 9 Mar 2009 10:50:10 -0600 [thread overview]
Message-ID: <20090309165010.GB32589@ldl.fc.hp.com> (raw)
In-Reply-To: <20090309150453.GB7627@kroah.com>
* Greg KH <greg@kroah.com>:
> On Mon, Mar 09, 2009 at 12:36:54AM -0600, Alex Chiang wrote:
> > Hi Kay, Greg,
> >
> > I've been working on this patch series recently that adds
> > function and device level hotplug into the PCI core:
> >
> > http://thread.gmane.org/gmane.linux.kernel.pci/3495
> >
> > For the last two weeks, I've been beating my head against a
> > refcounting/kobject problem, and was hoping you could give me
> > some advice, since I seem to have run into a wall.
> >
> > My test case has been removing device 0000:04:00.0, which should
> > remove all the devices below it.
>
> You are removing the children before the parent device, right? If not,
> you have to be _very_ careful (personally, I don't think you should be
> allowed to do that, but others, like the scsi developers, like doing
> things like this...)
Yes, I'm removing children before the parent, using the
pci_remove_bus_device() interface.
> > In this data set, I turned on kobject debugging, and managed to
> > capture a trace where we die on the 2nd rescan.
> >
> > In this data set, we:
> >
> > - create a kobject for 0000:04:00.0 (e00000018cac2920)
> > - remove the device
> > - observe '0000:04:00.0' (e00000018cac2920): calling ktype release
> > - rescan the bus
> > - discover that e00000018cac2920 is still hanging around!
>
> What do you mean by "rescan"?
By rescan, I mean we're rescanning the entire PCI bus, looking
for new devices.
for each PCI root bus:
pci_scan_child_bus()
pci_bus_add_devices()
> And sure, if you create a new device, it could be allocated at
> the same location, that's what the slab allocators do, right?
I thought about the allocators returning a pointer to the same
location that maybe has some valid looking data hanging around,
but it's not wise for someone like me to go pointing fingers at
the allocator before I've proven the bug isn't in my code. ;)
I'm just hoping for some advice on what else I could instrument
to try and track this down further.
Thanks.
/ac
next prev parent reply other threads:[~2009-03-09 16:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-09 6:36 kobj refcounting weirdness Alex Chiang
2009-03-09 15:04 ` Greg KH
2009-03-09 15:05 ` Greg KH
2009-03-09 16:50 ` Alex Chiang [this message]
2009-03-09 16:58 ` Matthew Wilcox
2009-03-09 17:21 ` Alex Chiang
2009-03-09 18:01 ` Alex Chiang
2009-03-09 18:21 ` Vegard Nossum
2009-03-09 18:41 ` Alex Chiang
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=20090309165010.GB32589@ldl.fc.hp.com \
--to=achiang@hp.com \
--cc=greg@kroah.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rjw@sisk.pl \
/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.