[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v8 0/7] sPAPR: Support EEH Error Injection
From: |
David Gibson |
Subject: |
Re: [Qemu-ppc] [PATCH v8 0/7] sPAPR: Support EEH Error Injection |
Date: |
Mon, 14 Sep 2015 14:14:16 +1000 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Sep 14, 2015 at 11:36:08AM +1000, Gavin Shan wrote:
> The patchset depends on below Linux upstream commits:
>
> commit ed3e81f ("powerpc/eeh: Move PE state constants around")
> commit ec33d36 ("powerpc/eeh: Introduce eeh_pe_inject_err()")
>
> According to PAPR specification 2.7, there're 3 RTAS calls relevent to error
> injection: "ibm,open-errinjct", "ibm,close-errinjct", "ibm,errinjct". The
> userland utility "errinjct" running on guest utilizes those 3 RTAS calls like
> this way: Call "ibm,open-errinjct" that returns open-token, which is passed to
> "ibm,errinjct" together with error specific arguments to do error injection.
> Finally, to return the open-token by calling "ibm,close-errinject".
>
> "ibm,errinjct" can be used to inject various errors, not limited to EEH
> errors.
> However, this patchset is going to support injecting EEH errors only for VFIO
> PCI devices.
I'm happy to merge 6..7/7 once 1..5/7 are in - I'm not sure what tree
they should be going through.
> =========
> Changelog
> =========
> v8:
> * Rebased to git://github.com/dgibson/qemu.git (branch: spapr-next)
> * Apply "git -C $to commit" to update-linux-headers.sh.
> * Use "git rev-parse --short HEAD" to retrieve top commit
> * Use "EOF" to construct the commit message
> * Drop sPAPRPHBClass::eeh_inject_error().
> v7:
> * Cover comments from Peter Maydell in scripts/update-linux-headers.sh.
> * Reset spapr->errinjct_token when rebooting guest.
> v6:
> * Improved scripts/update-linux-headers.sh to format commit log with
> last commit ID and Linux kernel version. Also, "stdint.h" is allowed
> to be included in virtio headers.
> * #include "asm-powerpc/eeh.h".
> * Incremental spapr->errinjct_token so that the condition (0x1 &
> spapr->errinjct_token) can be used to check if the token is valid.
> * Big-endian tokens in /rtas/ibm,errinjct-tokens.
> * Pick rtas_ldq() to load 64-bits value from RTAS call buffer, which
> was dropped in v2.
> * Use EEH_ERR_FUNC_MAX to validate EEH error function.
> * Removed unnecessary paranthesitis.
> v5:
> * Put "errinjct_token" to migration stream disregarding it's opened or
> not. Also, it starts to be supported from v4 vmstate_spapr.
> * Include powerpc/include/uapi/asm/eeh.h in scripts/update_linux_headers.sh
> v4:
> * To record currently opened token, not next one as suggested by Alexey.
> v3:
> * Replace random token number with incremental counter. Another boolean
> variable to track if it's opened. Both of them are added to migration
> stream.
> * The return value from sPAPRPHBClass::eeh_inject_error() can be passed
> to user directly. No need to do conversion.
> * Corrected error code to RTAS_OUT_CLOSE_ERROR in rtas_ibm_errinjct().
> * Don't expose error injection tokens for unsupported types.
> v2:
> * Rebased to git://github.com/dgibson/qemu.git (branch: spapr-next)
> * Remove specific PCI error types in hw/ppc/spapr.h. Use those macros
> asm-powerpc/eeh.h instead.
>
> Gavin Shan (7):
> scripts: Allow include "stdint.h" in virtio headers
> scripts: Include arch/powerpc/include/uapi/asm/eeh.h
> scripts: Submit changes while updating linux headers
> Synchronize Linux headers from kernel 4.3.0-rc1
> Obsolete PCI_MSIX_FLAGS_BIRMASK
> sPAPR: Support RTAS call ibm, {open, close}-errinjct
> sPAPR: Support RTAS call ibm,errinjct
>
> hw/i386/kvm/pci-assign.c | 4 +-
> hw/pci/msix.c | 2 +-
> hw/pci/pcie_aer.c | 2 +-
> hw/ppc/spapr.c | 9 +-
> hw/ppc/spapr_pci.c | 30 +++
> hw/ppc/spapr_pci_vfio.c | 32 +++
> hw/ppc/spapr_rtas.c | 137 ++++++++++
> hw/s390x/s390-pci-bus.c | 8 +-
> hw/vfio/pci.c | 8 +-
> hw/xen/xen_pt_msi.c | 4 +-
> include/hw/pci-host/spapr.h | 3 +
> include/hw/ppc/spapr.h | 16 +-
> include/standard-headers/linux/pci_regs.h | 381
> ++++++++++++++++++++-------
> include/standard-headers/linux/virtio_ring.h | 3 +-
> linux-headers/asm-arm64/kvm.h | 37 ++-
> linux-headers/asm-powerpc/eeh.h | 56 ++++
> linux-headers/asm-x86/hyperv.h | 4 +
> linux-headers/asm-x86/kvm.h | 4 +-
> linux-headers/linux/kvm.h | 7 +
> scripts/update-linux-headers.sh | 34 ++-
> tests/libqos/pci.c | 8 +-
> 21 files changed, 667 insertions(+), 122 deletions(-)
> create mode 100644 linux-headers/asm-powerpc/eeh.h
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
pgpqxeJgoMg9x.pgp
Description: PGP signature
- [Qemu-ppc] [PATCH v8 0/7] sPAPR: Support EEH Error Injection, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 3/7] scripts: Submit changes while updating linux headers, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 2/7] scripts: Include arch/powerpc/include/uapi/asm/eeh.h, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 1/7] scripts: Allow include "stdint.h" in virtio headers, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 4/7] Synchronize Linux headers from kernel 4.3.0-rc1, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 6/7] sPAPR: Support RTAS call ibm, {open, close}-errinjct, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 5/7] Obsolete PCI_MSIX_FLAGS_BIRMASK, Gavin Shan, 2015/09/13
- [Qemu-ppc] [PATCH v8 7/7] sPAPR: Support RTAS call ibm,errinjct, Gavin Shan, 2015/09/13
- Re: [Qemu-ppc] [PATCH v8 0/7] sPAPR: Support EEH Error Injection,
David Gibson <=