qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, thuth@redhat.com, aik@ozlabs.ru,
	Gavin Shan <gwshan@linux.vnet.ibm.com>,
	qemu-ppc@nongnu.org, david@gibson.dropbear.id.au
Subject: [Qemu-devel] [PATCH v7 0/8] sPAPR: Support EEH Error Injection
Date: Fri, 28 Aug 2015 17:15:12 +1000	[thread overview]
Message-ID: <1440746120-21577-1-git-send-email-gwshan@linux.vnet.ibm.com> (raw)

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

             reply	other threads:[~2015-08-28  7:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-28  7:15 Gavin Shan [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1440746120-21577-1-git-send-email-gwshan@linux.vnet.ibm.com \
    --to=gwshan@linux.vnet.ibm.com \
    --cc=aik@ozlabs.ru \
    --cc=david@gibson.dropbear.id.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).