From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzybU-0002Ml-O4 for qemu-devel@nongnu.org; Wed, 25 Jun 2014 21:36:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WzybN-0002f6-A8 for qemu-devel@nongnu.org; Wed, 25 Jun 2014 21:35:56 -0400 Received: from e23smtp02.au.ibm.com ([202.81.31.144]:56944) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzybM-0002en-J7 for qemu-devel@nongnu.org; Wed, 25 Jun 2014 21:35:49 -0400 Received: from /spool/local by e23smtp02.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 26 Jun 2014 11:35:42 +1000 Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [9.190.235.152]) by d23dlp01.au.ibm.com (Postfix) with ESMTP id 9C0C32CE8055 for ; Thu, 26 Jun 2014 11:35:40 +1000 (EST) Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay05.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s5Q1DLRh10224118 for ; Thu, 26 Jun 2014 11:13:21 +1000 Received: from d23av04.au.ibm.com (localhost [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s5Q1Zd2q002497 for ; Thu, 26 Jun 2014 11:35:39 +1000 From: Gavin Shan Date: Thu, 26 Jun 2014 11:35:35 +1000 Message-Id: <1403746538-12487-1-git-send-email-gwshan@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v11 0/3] EEH Support for VFIO PCI Devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aik@ozlabs.ru, alex.williamson@redhat.com, agraf@suse.de, Gavin Shan 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-v10-0-3-EEH-Support-for-VFIO-PCI-Device-td83042.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. Changelog ========= v8 -> v9: * Update kernel header (vfio.h) according to changes applied to kerenl. * Rename rtas_finish_eeh_request() to rtas_handle_eeh_request(). * vfio_pci_container_ioctl() moved to Alexey's VFIO patchset. v9 -> v10: * Make sure we have zero struct vfio_eeh_pe_op::flags v10 -> v11: * Don't explicitly set struct vfio_eeh_pe_op::flags to 0. * rtas_handle_eeh_request() checks the validity of sPAPRPHBState and sPAPRPHBClass::eeh_handler. * The first level functions set the RTAS call return value. * Replace "if (...)" with "switch (...)". Gavin Shan (3): sPAPR: Implement EEH RTAS calls headers: Update kernel header sPAPR: Implement sPAPRPHBClass::eeh_handler hw/ppc/spapr_pci.c | 240 ++++++++++++++++++++++++++++++++++++++++++++ hw/ppc/spapr_pci_vfio.c | 56 +++++++++++ include/hw/pci-host/spapr.h | 7 ++ include/hw/ppc/spapr.h | 33 ++++++ linux-headers/linux/vfio.h | 34 +++++++ 5 files changed, 370 insertions(+) -- 1.8.3.2