This series of patches adds support for FWNMI in PowerKVM guests. Memory error such as bit flips 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 exception, if the address in error belongs to guest then KVM causes a guest exit with KVM_EXIT_NMI exit reason.
This patch series adds functionality to pass on such machine check exception to the guest kernel by suitably handling KVM_EXIT_NMI exit and building the error log. The KVM changes are now part of the upstream kernel (commit e20bbd3d). This series contain QEMU changes. Change Log v5: - Handled VM migrations by including rtas_addr in VMSTATE. - Migration is blocked while a machine check is in progress. Change Log v4: - Included the RTAS_DISP_FULLY_RECOVERED scenario in patch 4/5. Change Log v3: - Rebased to v2.10.0-rc0 (git://github.com/dgibson/qemu) Change Log v2: - Added KVM capability - Serialized multiple NMIs with a conditional wait --- Aravinda Prasad (6): ppc: spapr: Register and handle HCALL to receive updated RTAS region 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 ppc: spapr: Enable FWNMI capability migration: Block migration while handling machine check cpus.c | 5 +++ hw/ppc/spapr.c | 23 ++++++++++++ hw/ppc/spapr_events.c | 62 +++++++++++++++++++++++++++++++ hw/ppc/spapr_hcall.c | 8 ++++ hw/ppc/spapr_rtas.c | 53 +++++++++++++++++++++++++++ include/hw/ppc/spapr.h | 23 +++++++++++- include/qemu/main-loop.h | 8 ++++ target/ppc/kvm.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++ target/ppc/kvm_ppc.h | 20 ++++++++++ 9 files changed, 292 insertions(+), 2 deletions(-) -- Aravinda Prasad