From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38842) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YnXXc-00018D-Jj for qemu-devel@nongnu.org; Wed, 29 Apr 2015 15:21:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YnXXZ-00068m-6k for qemu-devel@nongnu.org; Wed, 29 Apr 2015 15:21:04 -0400 Received: from e34.co.us.ibm.com ([32.97.110.152]:41241) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YnXXY-00068c-Uw for qemu-devel@nongnu.org; Wed, 29 Apr 2015 15:21:01 -0400 Received: from /spool/local by e34.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 29 Apr 2015 13:20:59 -0600 From: Michael Roth Date: Wed, 29 Apr 2015 14:20:09 -0500 Message-Id: <1430335224-6716-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [RFC PATCH 00/15] spapr: add support for PHB hotplug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aik@ozlabs.ru, nfont@linux.vnet.ibm.com, bharata@linux.vnet.ibm.com, qemu-ppc@nongnu.org, david@gibson.dropbear.id.au These patches are based on latest spapr-hotplug-pci patches, and can also be obtained from: https://github.com/mdroth/qemu/commits/spapr-hotplug-phb These patches implement support for hotplug/unplug of PCI host-bridges. The main use cases are: - allowing for VFIO PCI hotplug for host kernels that still require a 1:1 mapping between guest PHB/TCE table and an iommu group (a requirement that will be relaxed with Alexey Kardashevskiy's VFIO rework for DDW support) - allocating new PHBs/TCE tables for hotplugging/distributing VFIO devices that have different NUMA affinities associated with them for performance reason - expanding hotplug capacity for passthrough/emulated PCI devices With these patches we support the following: (qemu) device_add spapr-pci-host-bridge,index=2,id=phb2 (qemu) device_add virtio-net-pci,id=hp2.0,bus=phb2.0 (qemu) device_del hp2.0 (qemu) device_del phb2 Automatic add/remove of PHBs based on EPOW event mechanism require updated versions of powerpc-utils, rtas_errd, and librtas. Patches are forthcoming and will be available in future versions, but for now we can add them manually by executing the following in the guest after/before hotplug/unplug, respectively: # add PHB drmgr -c PHB -s "PHB 2" -a -n # remove PHB drmgr -c PHB -s "PHB 2" -r -n Feedback/comments are very much appreciated. hw/core/qdev.c | 24 ++++++++++++------ hw/pci/pci.c | 33 +++++++++++++++++++++++++ hw/ppc/spapr.c | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- hw/ppc/spapr_drc.c | 1 + hw/ppc/spapr_events.c | 5 ++++ hw/ppc/spapr_iommu.c | 1 + hw/ppc/spapr_pci.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++--- include/hw/pci-host/spapr.h | 3 ++- include/hw/pci/pci.h | 3 +++ include/hw/ppc/spapr.h | 1 + include/hw/qdev-core.h | 3 +++ 11 files changed, 310 insertions(+), 13 deletions(-)