On Wed, 14 Aug 2019 11:40:50 +0530
Aravinda Prasad 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.
>
> Change Log v11:
> - Moved FWNMI SPAPR cap defaults to 4.2 class option
> - Fixed issues with handling fwnmi KVM capability
>
Hi Aravinda,
I'm afraid this series needs rebasing. It doesn't apply
cleanly on current ppc-for-4.2 (SHA1 b1e8156743).
Cheers,
--
Greg
> Change Log v10:
> - Reshuffled the patch sequence + minor fixes
>
> Change Log v9:
> - Fixed kvm cap and spapr cap issues
>
> Change Log v8:
> - Added functionality to check FWNMI capability during
> VM migration
> ---
>
> Aravinda Prasad (6):
> Wrapper function to wait on condition for the main loop mutex
> ppc: spapr: Introduce FWNMI capability
> target/ppc: Handle NMI guest exit
> target/ppc: Build rtas error log upon an MCE
> ppc: spapr: Handle "ibm,nmi-register" and "ibm,nmi-interlock" RTAS calls
> migration: Include migration support for machine check handling
>
>
> cpus.c |5 +
> hw/ppc/spapr.c | 78 +
> hw/ppc/spapr_caps.c | 29 +
> hw/ppc/spapr_events.c| 268
> ++
> hw/ppc/spapr_rtas.c | 78 +
> include/hw/ppc/spapr.h | 25
> include/qemu/main-loop.h |8 +
> target/ppc/cpu.h |1
> target/ppc/kvm.c | 38 +++
> target/ppc/kvm_ppc.h | 13 ++
> target/ppc/trace-events |1
> 11 files changed, 542 insertions(+), 2 deletions(-)
>
> --
> Signature