From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1add6O-0002GA-OC for qemu-devel@nongnu.org; Wed, 09 Mar 2016 07:20:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1add6K-0000q3-My for qemu-devel@nongnu.org; Wed, 09 Mar 2016 07:20:32 -0500 Sender: Paolo Bonzini References: <1456151945-11225-1-git-send-email-pbonzini@redhat.com> From: Paolo Bonzini Message-ID: <56E01503.6050300@redhat.com> Date: Wed, 9 Mar 2016 13:20:19 +0100 MIME-Version: 1.0 In-Reply-To: <1456151945-11225-1-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/3] Early release of -drive QemuOpts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Markus Armbruster , qemu block , Max Reitz On 22/02/2016 15:39, Paolo Bonzini wrote: > In short, this patch gets rid of blockdev_mark_auto_del and > blockdev_auto_del. > > With these patches, it is possible to create a new -drive with the same > id as soon as the DEVICE_DELETED event is delivered (which equals to > unrealize). > > I'm sorry I'm not able to explain the history (and probably do not > understand the full ramifications) of this. That's why this is just > an RFC. > > The idea here is that reference counting the BlockBackend is enough to > defer the deletion of the block device as much as necessary; anticipating > the destruction of the DriveInfo is not a problem, and has the desired > effect of freeing the QemuOpts. > > Patches 1 and 3 are mostly similar to the version I had earlier sent as > RFC, but they now pass all unit tests. Patch 2 is new, but I don't know > of a test that fails it. > > Paolo > > Paolo Bonzini (3): > block: detach devices from DriveInfo at unrealize time > block: keep BlockBackend alive until device finalize time > block: remove legacy_dinfo at blk_detach_dev time > > block/block-backend.c | 13 +++++++++---- > blockdev.c | 28 +++++++++------------------- > hw/block/virtio-blk.c | 4 +++- > hw/block/xen_disk.c | 1 + > hw/core/qdev-properties-system.c | 13 +++++++++++-- > hw/ide/piix.c | 3 +++ > hw/scsi/scsi-bus.c | 4 +++- > hw/usb/dev-storage.c | 3 ++- > include/sysemu/blockdev.h | 5 ++--- > 9 files changed, 43 insertions(+), 31 deletions(-) > Ping?!?