qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-ppc] [RFC PATCH 00/15] spapr: add support for PHB hotplug


From: Michael Roth
Subject: [Qemu-ppc] [RFC PATCH 00/15] spapr: add support for PHB hotplug
Date: Wed, 29 Apr 2015 14:20:09 -0500

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(-)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]