From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vstv8-0000HH-BI for qemu-devel@nongnu.org; Tue, 17 Dec 2013 07:38:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vstv2-0008Qf-9y for qemu-devel@nongnu.org; Tue, 17 Dec 2013 07:38:42 -0500 Received: from mx1.redhat.com ([209.132.183.28]:65133) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vstv2-0008QZ-1a for qemu-devel@nongnu.org; Tue, 17 Dec 2013 07:38:36 -0500 Message-ID: <52B045BB.6010900@redhat.com> Date: Tue, 17 Dec 2013 13:38:19 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1386938688-22433-1-git-send-email-imammedo@redhat.com> <87r49c1ioi.fsf@codemonkey.ws> In-Reply-To: <87r49c1ioi.fsf@codemonkey.ws> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 00/11 v3] Refactor PCI/SHPC/PCIE hotplug to use a more generic hotplug API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: kwolf@redhat.com, peter.maydell@linaro.org, peter.crosthwaite@xilinx.com, ehabkost@redhat.com, mst@redhat.com, marcel.a@redhat.com, qemu-devel@nongnu.org, blauwirbel@gmail.com, alex.williamson@redhat.com, kraxel@redhat.com, dkoch@verizon.co, Igor Mammedov , afaerber@suse.de Il 17/12/2013 00:26, Anthony Liguori ha scritto: > Sharing hot plug code is a good thing. Making hotplug a qdev-level > concept seems like a bad thing to me. Can you explain what you mean? > The series is a net add of code so I don't think we're winning anything > by generalizing here. Any generalization that's used just once will be a net add of code (and this code will be reused by SCSI and x86 memory hotplug at least; perhaps x86 CPU hotplug too). Any generalization that requires some boilerplate code will be a net add of code, too. QEMU being written in C, we unfortunately cannot avoid tha= t. So I don't think that lines of code are a good metric. Paolo > Is there a use-case this enables that isn't possible today? >=20 > Regards, >=20 > Anthony Liguori >=20 >> >> Patches 8-11 are should be merged as one and are split only for >> simplifying review (they compile fine but PCI hotplug is broken >> until the last patch is applyed). >> >> git tree for testing: >> https://github.com/imammedo/qemu/commits/hotplug_dev_inf_v3 >> >> tested only ACPI and PCIE hotplug. >> >> Herv=C3=A9 Poussineau (1): >> qom: detect bad reentrance during object_class_foreach >> >> Igor Mammedov (9): >> define hotplug interface >> qdev: add to BusState "hotplug-handler" link >> qdev: add "hotpluggable" property to Device >> hw/acpi: move typeinfo to the file end >> qdev:pci: refactor PCIDevice to use generic "hotpluggable" property >> acpi/piix4pm: convert ACPI PCI hotplug to use hotplug-handler API >> pci/shpc: convert SHPC hotplug to use hotplug-handler API >> pci/pcie: convert PCIE hotplug to use hotplug-handler API >> hw/pci: switch to a generic hotplug handling for PCIDevice >> >> Paolo Bonzini (1): >> qom: do not register interface "types" in the type table >> >> hw/acpi/piix4.c | 151 ++++++++++++++++++++++----------= --------- >> hw/core/Makefile.objs | 1 + >> hw/core/hotplug.c | 48 +++++++++++++ >> hw/core/qdev.c | 50 ++++++++++++-- >> hw/display/cirrus_vga.c | 2 +- >> hw/display/qxl.c | 2 +- >> hw/display/vga-pci.c | 2 +- >> hw/display/vmware_vga.c | 2 +- >> hw/i386/acpi-build.c | 6 +- >> hw/ide/piix.c | 4 +- >> hw/isa/piix4.c | 2 +- >> hw/pci-bridge/pci_bridge_dev.c | 9 +++ >> hw/pci-host/piix.c | 6 +- >> hw/pci/pci.c | 40 +---------- >> hw/pci/pcie.c | 73 +++++++++++++------- >> hw/pci/pcie_port.c | 8 +++ >> hw/pci/shpc.c | 133 +++++++++++++++++++++++---------= ---- >> hw/usb/hcd-ehci-pci.c | 2 +- >> hw/usb/hcd-ohci.c | 2 +- >> hw/usb/hcd-uhci.c | 2 +- >> hw/usb/hcd-xhci.c | 2 +- >> include/hw/hotplug.h | 75 ++++++++++++++++++++ >> include/hw/pci/pci.h | 13 ---- >> include/hw/pci/pci_bus.h | 2 - >> include/hw/pci/pcie.h | 5 ++ >> include/hw/pci/shpc.h | 8 +++ >> include/hw/qdev-core.h | 8 +++ >> qom/object.c | 17 ++++- >> 28 files changed, 455 insertions(+), 220 deletions(-) >> create mode 100644 hw/core/hotplug.c >> create mode 100644 include/hw/hotplug.h >> >> --=20 >> 1.8.3.1