All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v7 0/8] sPAPR: Support EEH Error Injection
@ 2015-08-28  7:15 Gavin Shan
  2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 1/8] scripts: Allow include "stdint.h" in virtio headers Gavin Shan
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Gavin Shan @ 2015-08-28  7:15 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, thuth, aik, Gavin Shan, qemu-ppc, david

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.

=========
Changelog
=========
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 (8):
  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.2.0-rc8
  Obsolete PCI_MSIX_FLAGS_BIRMASK
  sPAPR: Introduce rtas_ldq()
  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                           |  56 +++-
 hw/ppc/spapr_pci_vfio.c                      |  35 +++
 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                  |   2 +
 include/hw/ppc/spapr.h                       |  21 +-
 include/standard-headers/linux/pci_regs.h    | 381 ++++++++++++++++++++-------
 include/standard-headers/linux/virtio_ring.h |   3 +-
 linux-headers/asm-powerpc/eeh.h              |  56 ++++
 linux-headers/asm-x86/hyperv.h               |   2 +
 linux-headers/asm-x86/kvm.h                  |   4 +-
 scripts/update-linux-headers.sh              |  28 +-
 tests/libqos/pci.c                           |   8 +-
 19 files changed, 640 insertions(+), 130 deletions(-)
 create mode 100644 linux-headers/asm-powerpc/eeh.h

-- 
2.1.0

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2015-09-04  4:55 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-28  7:15 [Qemu-devel] [PATCH v7 0/8] sPAPR: Support EEH Error Injection Gavin Shan
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 1/8] scripts: Allow include "stdint.h" in virtio headers Gavin Shan
2015-09-01  0:50   ` David Gibson
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 2/8] scripts: Include arch/powerpc/include/uapi/asm/eeh.h Gavin Shan
2015-09-01  0:51   ` David Gibson
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 3/8] scripts: Submit changes while updating linux headers Gavin Shan
2015-08-28 11:50   ` [Qemu-devel] [Qemu-ppc] " Laurent Vivier
2015-08-28 12:30     ` Gavin Shan
2015-08-28 13:06       ` Gavin Shan
2015-08-31 12:37       ` Laurent Vivier
2015-08-31 23:11         ` Gavin Shan
2015-09-01  0:56   ` [Qemu-devel] " David Gibson
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 4/8] Synchronize Linux headers from kernel 4.2.0-rc8 Gavin Shan
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 5/8] Obsolete PCI_MSIX_FLAGS_BIRMASK Gavin Shan
2015-09-01  1:00   ` David Gibson
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 6/8] sPAPR: Introduce rtas_ldq() Gavin Shan
2015-09-01  1:05   ` David Gibson
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 7/8] sPAPR: Support RTAS call ibm, {open, close}-errinjct Gavin Shan
2015-09-01  1:06   ` David Gibson
2015-08-28  7:15 ` [Qemu-devel] [PATCH v7 8/8] sPAPR: Support RTAS call ibm,errinjct Gavin Shan
2015-09-04  4:53   ` [Qemu-devel] [PATCH v7 8/8] sPAPR: Support RTAS call ibm, errinjct David Gibson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.