[Qemu-devel] [PATCH v6 0/6] target-ppc/spapr: Add FWNMI support in QEMU for PowerKVM guests

Aravinda Prasad posted 6 patches 5 years, 1 month ago
Failed in applying to current master (apply log)
There is a newer version of this series
cpus.c                   |    5 +
hw/ppc/spapr.c           |   29 +++++
hw/ppc/spapr_events.c    |  286 ++++++++++++++++++++++++++++++++++++++++++++++
hw/ppc/spapr_rtas.c      |   55 +++++++++
include/hw/ppc/spapr.h   |   23 ++++
include/qemu/main-loop.h |    8 +
target/ppc/kvm.c         |   30 +++++
target/ppc/kvm_ppc.h     |    8 +
8 files changed, 443 insertions(+), 1 deletion(-)
[Qemu-devel] [PATCH v6 0/6] target-ppc/spapr: Add FWNMI support in QEMU for PowerKVM guests
Posted by Aravinda Prasad 5 years, 1 month ago
This patch set adds support for FWNMI in PowerKVM guests.

System errors such as SLB multihit and memory errors
that cannot be corrected by hardware is passed on to
the kernel for handling by raising machine check
exception (an NMI). Upon such machine check exceptions,
if the address in error belongs to guest then KVM
invokes guests' 0x200 interrupt vector if the guest
is not FWNMI capable. For FWNMI capable guest
KVM passes the control to QEMU by exiting the guest.

This patch series adds functionality to QEMU to pass
on such machine check exceptions to the FWNMI capable
guest kernel by building an error log and invoking
the guest registered machine check handling routine.

The KVM changes are now part of the upstream kernel
(commit e20bbd3d). This series contain QEMU changes.

Change Log v6:
  - Fetches rtas_addr from fdt
  - Handles all error conditions (earlier it was only UEs)

Change Log v5:
  - Handled VM migrations by including rtas_addr in VMSTATE.
  - Migration is blocked while a machine check is in progress.

---

Aravinda Prasad (6):
      ppc: spapr: Handle "ibm,nmi-register" and "ibm,nmi-interlock" RTAS calls
      Wrapper function to wait on condition for the main loop mutex
      target/ppc: Handle NMI guest exit
      target/ppc: Build rtas error log
      ppc: spapr: Enable FWNMI capability
      migration: Block migration while handling machine check


 cpus.c                   |    5 +
 hw/ppc/spapr.c           |   29 +++++
 hw/ppc/spapr_events.c    |  286 ++++++++++++++++++++++++++++++++++++++++++++++
 hw/ppc/spapr_rtas.c      |   55 +++++++++
 include/hw/ppc/spapr.h   |   23 ++++
 include/qemu/main-loop.h |    8 +
 target/ppc/kvm.c         |   30 +++++
 target/ppc/kvm_ppc.h     |    8 +
 8 files changed, 443 insertions(+), 1 deletion(-)

--
Aravinda Prasad


Re: [Qemu-devel] [Qemu-ppc] [PATCH v6 0/6] target-ppc/spapr: Add FWNMI support in QEMU for PowerKVM guests
Posted by Greg Kurz 5 years, 1 month ago
On Tue, 12 Mar 2019 15:32:51 +0530
Aravinda Prasad <aravinda@linux.vnet.ibm.com> wrote:

> This patch set adds support for FWNMI in PowerKVM guests.
> 
> System errors such as SLB multihit and memory errors
> that cannot be corrected by hardware is passed on to
> the kernel for handling by raising machine check
> exception (an NMI). Upon such machine check exceptions,
> if the address in error belongs to guest then KVM
> invokes guests' 0x200 interrupt vector if the guest
> is not FWNMI capable. For FWNMI capable guest
> KVM passes the control to QEMU by exiting the guest.
> 
> This patch series adds functionality to QEMU to pass
> on such machine check exceptions to the FWNMI capable
> guest kernel by building an error log and invoking
> the guest registered machine check handling routine.
> 
> The KVM changes are now part of the upstream kernel
> (commit e20bbd3d). This series contain QEMU changes.
> 

Hi Aravinda,

Please rebase this series because of the "spapr: Use CamelCase properly"
patch, now merged in master:

https://git.qemu.org/?p=qemu.git;a=commit;h=ce2918cbc31e190e7d644c684dcc2bbcb6b9a9df

Cheers,

--
Greg

> Change Log v6:
>   - Fetches rtas_addr from fdt
>   - Handles all error conditions (earlier it was only UEs)
> 
> Change Log v5:
>   - Handled VM migrations by including rtas_addr in VMSTATE.
>   - Migration is blocked while a machine check is in progress.
> 
> ---
> 
> Aravinda Prasad (6):
>       ppc: spapr: Handle "ibm,nmi-register" and "ibm,nmi-interlock" RTAS calls
>       Wrapper function to wait on condition for the main loop mutex
>       target/ppc: Handle NMI guest exit
>       target/ppc: Build rtas error log
>       ppc: spapr: Enable FWNMI capability
>       migration: Block migration while handling machine check
> 
> 
>  cpus.c                   |    5 +
>  hw/ppc/spapr.c           |   29 +++++
>  hw/ppc/spapr_events.c    |  286 ++++++++++++++++++++++++++++++++++++++++++++++
>  hw/ppc/spapr_rtas.c      |   55 +++++++++
>  include/hw/ppc/spapr.h   |   23 ++++
>  include/qemu/main-loop.h |    8 +
>  target/ppc/kvm.c         |   30 +++++
>  target/ppc/kvm_ppc.h     |    8 +
>  8 files changed, 443 insertions(+), 1 deletion(-)
> 
> --
> Aravinda Prasad
> 
> 


Re: [Qemu-devel] [Qemu-ppc] [PATCH v6 0/6] target-ppc/spapr: Add FWNMI support in QEMU for PowerKVM guests
Posted by David Gibson 5 years, 1 month ago
On Tue, Mar 12, 2019 at 03:26:27PM +0100, Greg Kurz wrote:
> On Tue, 12 Mar 2019 15:32:51 +0530
> Aravinda Prasad <aravinda@linux.vnet.ibm.com> wrote:
> 
> > This patch set adds support for FWNMI in PowerKVM guests.
> > 
> > System errors such as SLB multihit and memory errors
> > that cannot be corrected by hardware is passed on to
> > the kernel for handling by raising machine check
> > exception (an NMI). Upon such machine check exceptions,
> > if the address in error belongs to guest then KVM
> > invokes guests' 0x200 interrupt vector if the guest
> > is not FWNMI capable. For FWNMI capable guest
> > KVM passes the control to QEMU by exiting the guest.
> > 
> > This patch series adds functionality to QEMU to pass
> > on such machine check exceptions to the FWNMI capable
> > guest kernel by building an error log and invoking
> > the guest registered machine check handling routine.
> > 
> > The KVM changes are now part of the upstream kernel
> > (commit e20bbd3d). This series contain QEMU changes.
> > 
> 
> Hi Aravinda,
> 
> Please rebase this series because of the "spapr: Use CamelCase properly"
> patch, now merged in master:
> 
> https://git.qemu.org/?p=qemu.git;a=commit;h=ce2918cbc31e190e7d644c684dcc2bbcb6b9a9df

Indeed.  Unfortunately this isn't great timing for ths series: we've
just had the soft freeze, so this won't be able to go in until the 4.1
tree opens.

-- 
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