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 containe QEMU changes. 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 (5): 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 cpus.c | 5 ++ hw/ppc/spapr.c | 12 ++++++ hw/ppc/spapr_hcall.c | 8 ++++ hw/ppc/spapr_rtas.c | 52 ++++++++++++++++++++++++++ include/hw/ppc/spapr.h | 14 ++++++- include/qemu/main-loop.h | 8 ++++ target/ppc/kvm.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++ target/ppc/kvm_ppc.h | 82 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 272 insertions(+), 2 deletions(-) -- Aravinda Prasad