From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38140) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YoHmx-0003cz-I3 for qemu-devel@nongnu.org; Fri, 01 May 2015 16:44:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YoHmw-0001vk-DU for qemu-devel@nongnu.org; Fri, 01 May 2015 16:43:59 -0400 Sender: Paolo Bonzini Message-ID: <5543E581.9000809@redhat.com> Date: Fri, 01 May 2015 22:43:45 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1430335224-6716-1-git-send-email-mdroth@linux.vnet.ibm.com> <1430335224-6716-3-git-send-email-mdroth@linux.vnet.ibm.com> <55422F91.4050504@redhat.com> <20150430230331.11253.37707@loki> In-Reply-To: <20150430230331.11253.37707@loki> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH 02/15] qdev: store DeviceState's canonical path to use when unparenting List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Roth , qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , aik@ozlabs.ru, qemu-ppc@nongnu.org, bharata@linux.vnet.ibm.com, nfont@linux.vnet.ibm.com, david@gibson.dropbear.id.au On 01/05/2015 01:03, Michael Roth wrote: > > I played around with the idea of temporarilly moving unparented, unfinalized > objects to an "orphan" container. It seemed like a fun way of tracking leaked > objects, and avoids the assert, but that got wierd pretty quickly... and > having DEVICE_DELETED randomly change up the device path didn't seem like > the intended behavior, so this hack ended up seeming pretty reasonable. > > The other approach, which I hadn't looked into too closely, was to defer > unparenting an object until it's ref count goes to 0. Could maybe look into > that instead if it seems less hacky. What about unparenting children devices in the device's unrealize callback? It sucks that you have to do it manually, but using stale canonical paths isn't the nicest thing either. Paolo