The series of patches adds support EEH for VFIO PCI devices on sPAPR platform. It requires corresponding host kernel support. Also, it is based on top of Alexey's VFIO-for-sPAPR git repository.
QEMU: git://github.com/aik/qemu.git (branch: vfio) Kernel: git://github.com/aik/linux.git (branch: vfio) Kernel: http://linuxppc.10917.n7.nabble.com/PATCH-v8-0-3-EEH-Support-for-VFIO-PCI-Device-td82940.html The implementations notes are below. Please comment. * RTAS calls are received in spapr_pci.c, sanity check is done there. RTAS handlers handle what they can. If there is something it cannot handle and sPAPRPHBClass::eeh_handler callback is defined, it is called. * sPAPRPHBClass::eeh_handler is only implemented for VFIO now. It does ioctl() to the IOMMU container fd to complete the call. Error codes from that ioctl() are transferred back to the guest. Gavin Shan (4): sPAPR: Implement EEH RTAS calls headers: Update kernel header VFIO: Introduce helper vfio_pci_container_ioctl() sPAPR: Implement sPAPRPHBClass::eeh_handler hw/misc/vfio.c | 31 ++++++ hw/ppc/spapr_pci.c | 248 ++++++++++++++++++++++++++++++++++++++++++++ hw/ppc/spapr_pci_vfio.c | 54 ++++++++++ include/hw/misc/vfio.h | 2 + include/hw/pci-host/spapr.h | 7 ++ include/hw/ppc/spapr.h | 33 ++++++ linux-headers/linux/vfio.h | 35 +++++++ 7 files changed, 410 insertions(+) -- 1.8.3.2