From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: aik@ozlabs.ru, agraf@suse.de, kvm-ppc@vger.kernel.org,
alex.williamson@redhat.com, qiudayu@linux.vnet.ibm.com,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH RFC v2 00/10] EEH Support for VFIO PCI devices on PowerKVM guest
Date: Fri, 9 May 2014 17:54:01 +1000 [thread overview]
Message-ID: <20140509075401.GA23803@shangw> (raw)
In-Reply-To: <1399621782-23281-1-git-send-email-gwshan@linux.vnet.ibm.com>
On Fri, May 09, 2014 at 05:49:32PM +1000, Gavin Shan wrote:
Sorry for having missed cc'ing Alex Graf. Amending it.
>The series of patches intends to support EEH for PCI devices, which are
>passed through to PowerKVM based guest via VFIO. The implementation is
>straightforward based on the issues or problems we have to resolve to
>support EEH for PowerKVM based guest.
>
>- Emulation for EEH RTAS requests. All EEH RTAS requests goes to QEMU firstly.
> If QEMU can't handle it, the request will be sent to host via newly introduced
> VFIO container IOCTL command (VFIO_EEH_INFO) and gets handled in host kernel.
>
>- The error injection infrastructure need support request from the userland
> utility "errinjct" and PowerKVM based guest. The userland utility "errinjct"
> works on pSeries platform well with dedicated syscall, which helps invoking
> RTAS service to fulfil error injection in kernel. From the perspective, it's
> reasonable to extend the syscall to support PowerNV platform so that OPAL call
> can be invoked in host kernel for injecting errors. The data transported
> between userland and kerenl is still following "struct rtas_args" for both
> cases of PowerNV (OPAL) and pSeries (RTAS).
>
>The series of patches requires corresponding firmware changes from Mike Qiu to
>support error injection and QEMU changes to support EEH for guest. QEMU patchset
>will be sent separately.
>
>Change log
>==========
>v1 -> v2:
> * EEH RTAS requests are routed to QEMU, and then possiblly to host kerenl.
> The mechanism KVM in-kernel handling is dropped.
> * Error injection is reimplemented based syscall, instead of KVM in-kerenl
> handling. The logic for error injection token management is moved to
> QEMU. The error injection request is routed to QEMU and then possiblly
> to host kernel.
>
>Testing on P7
>=============
>
>- Emulex adapter
>
>Testing on P8
>=============
>
>- Need more testing after design is finalized.
>
>-----
>
>Gavin Shan (10):
> drivers/vfio: Introduce CONFIG_VFIO_EEH
> powerpc/eeh: Info to trace passed devices
> powerpc/eeh: Search EEH device by guest address
> powerpc/eeh: Search EEH PE by guest address
> drivers/vfio: New IOCTL command VFIO_EEH_INFO
> powerpc/eeh: Avoid event on passed PE
> powerpc/powernv: Sync OPAL header file with firmware
> powerpc: Extend syscall ppc_rtas()
> powerpc/powernv: Implement ppc_call_opal()
> powerpc/powernv: Error injection infrastructure
>
>arch/powerpc/include/asm/eeh.h | 52 +++++++++++++
>arch/powerpc/include/asm/opal.h | 74 +++++++++++++++++-
>arch/powerpc/include/asm/rtas.h | 10 ++-
>arch/powerpc/include/asm/syscalls.h | 2 +-
>arch/powerpc/include/asm/systbl.h | 2 +-
>arch/powerpc/include/uapi/asm/unistd.h | 2 +-
>arch/powerpc/kernel/eeh.c | 8 ++
>arch/powerpc/kernel/eeh_pe.c | 80 +++++++++++++++++++
>arch/powerpc/kernel/rtas.c | 57 +++-----------
>arch/powerpc/kernel/syscalls.c | 50 ++++++++++++
>arch/powerpc/platforms/powernv/Makefile | 3 +-
>arch/powerpc/platforms/powernv/eeh-ioda.c | 3 +-
>arch/powerpc/platforms/powernv/eeh-vfio.c | 584 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>arch/powerpc/platforms/powernv/errinject.c | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>arch/powerpc/platforms/powernv/opal-wrappers.S | 1 +
>arch/powerpc/platforms/powernv/opal.c | 93 ++++++++++++++++++++++
>drivers/vfio/Kconfig | 6 ++
>drivers/vfio/vfio_iommu_spapr_tce.c | 12 +++
>include/uapi/linux/vfio.h | 61 +++++++++++++++
>kernel/sys_ni.c | 2 +-
>20 files changed, 1271 insertions(+), 53 deletions(-)
>create mode 100644 arch/powerpc/platforms/powernv/eeh-vfio.c
>create mode 100644 arch/powerpc/platforms/powernv/errinject.c
>
>Thanks,
>Gavin
prev parent reply other threads:[~2014-05-09 7:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-09 7:49 [PATCH RFC v2 00/10] EEH Support for VFIO PCI devices on PowerKVM guest Gavin Shan
2014-05-09 7:49 ` [PATCH 01/10] drivers/vfio: Introduce CONFIG_VFIO_EEH Gavin Shan
2014-05-09 7:49 ` [PATCH 02/10] powerpc/eeh: Info to trace passed devices Gavin Shan
2014-05-09 7:49 ` [PATCH 03/10] powerpc/eeh: Search EEH device by guest address Gavin Shan
2014-05-09 7:49 ` [PATCH 04/10] powerpc/eeh: Search EEH PE " Gavin Shan
2014-05-09 7:49 ` [PATCH 05/10] drivers/vfio: New IOCTL command VFIO_EEH_INFO Gavin Shan
2014-05-09 7:49 ` [PATCH 06/10] powerpc/eeh: Avoid event on passed PE Gavin Shan
2014-05-09 7:49 ` [PATCH 07/10] powerpc/powernv: Sync OPAL header file with firmware Gavin Shan
2014-05-09 7:49 ` [PATCH 08/10] powerpc: Extend syscall ppc_rtas() Gavin Shan
2014-05-09 7:49 ` [PATCH 09/10] powerpc/powernv: Implement ppc_call_opal() Gavin Shan
2014-05-09 7:49 ` [PATCH 10/10] powerpc/powernv: Error injection infrastructure Gavin Shan
2014-05-09 7:54 ` Gavin Shan [this message]
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=20140509075401.GA23803@shangw \
--to=gwshan@linux.vnet.ibm.com \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=alex.williamson@redhat.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=qiudayu@linux.vnet.ibm.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).