[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v19 0/2] EEH Support for VFIO Devices
From: |
Gavin Shan |
Subject: |
Re: [Qemu-ppc] [PATCH v19 0/2] EEH Support for VFIO Devices |
Date: |
Tue, 3 Mar 2015 10:41:19 +1100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Feb 20, 2015 at 03:58:51PM +1100, Gavin Shan wrote:
agraf, could you help taking a look on this when you have available time?
Thanks,
Gavin
>The series of patches adds support EEH for VFIO PCI devices on sPAPR platform.
>It requires corresponding host kernel support, which was merged during 3.17
>merge window. This patchset has been rebased to Alex Graf's QEMU repository:
>
> git://github.com/agraf/qemu.git (branch: ppc-next)
>
>The implementations notes are below. Please consider for merging!
>
>* 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 callback is defined, it is called.
>* sPAPRPHBClass EEH callbacks are 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
>=========
>v18 -> v19:
> * Check the validity of PCI device address in
> sPAPRPHBClass::eeh_set_option()
> when enabling EEH functionality.
>v17 -> v18:
> * Check options in sPAPRPHBClass callbacks for RTAS call
> "ibm,set-eeh-option"
> and "ibm,set-slot-reset".
> * Return RTAS_OUT_PARAM_ERROR on errors and RTAS_OUT_NO_ERRORS_FOUND on
> success
> as we don't have error log yet.
>v16 -> v17:
> * Split sPAPRPHBClass::eeh_handler() to multiple callbacks according to
> David
> Gibson's suggestion
> * Make comments for the form of PE address more precise and merge the
> condition
> checking on the option in rtas_ibm_get_config_addr_info2() to improve
> code
> readability
> * Return RTAS_OUT_PARAM_ERROR for invalid number of arguments to function
> rtas_ibm_slot_error_detail(), which is inconsistent with PAPR spec
>v15 -> v16:
> * Drop rtas_handle_eeh_request() and merge the logic to its callers so that
> more accurate return values can be returned for RTAS calls in the callers
> * Always return 1 ("No error log") for RTAS call "ibm,slot-error-detail"
> and
> correct wrong return values for other RTAS calls according to David
> Gibson's
> suggestions.
> * Make fall-through more obvious for case of negative return value from
> sPAPRPHBClass::eeh_handler()
> * Clear the argument buffer passed to ioctl()
> * Rename sPAPRPHBClass variable from "info" to "spc"
>v14 -> v15:
> * Dropped unrelated patch making find_phb()/find_dev() public.
> * Checking RTAS parameter number before accessing RTAS parameter buffer for
> more safety.
> * Return hardware error from RTAS call "ibm,set-eeh-option" and
> "ibm,set-slot-reset"
> for some cases according to PAPR spec.
>v13 -> v14:
> * Check if sPAPRPHBState instance is valid before converting it to the
> corresponding class as pointed by Alex Graf.
>v12 -> v13:
> * Rebase to Alex Graf's QEMU repository ("ppc-next" branch).
> * Drop the patch for header file (vfio.h) changes, which was merged
> to QEMU repository by commit a9fd1654 ("linux-headers: update to
> 3.17-rc7").
> * Retested on Emulex adapter and EEH errors are recovered successfully.
>
>Gavin Shan (2):
> sPAPR: Implement EEH RTAS calls
> sPAPR: Implement sPAPRPHBClass EEH callbacks
>
> hw/ppc/spapr_pci.c | 271 ++++++++++++++++++++++++++++++++++++++++++++
> hw/ppc/spapr_pci_vfio.c | 115 +++++++++++++++++++
> hw/vfio/common.c | 1 +
> include/hw/pci-host/spapr.h | 4 +
> include/hw/ppc/spapr.h | 43 ++++++-
> 5 files changed, 432 insertions(+), 2 deletions(-)
>
>--
>1.8.3.2
>
- Re: [Qemu-ppc] [PATCH v19 0/2] EEH Support for VFIO Devices,
Gavin Shan <=