From: Aravinda Prasad <aravinda@xxxxxxxxxxxxxxxxxx> This series of patches add FWNMI support for KVM guests on POWER. Memory errors 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 exceptions, if the address in error belongs to the guest, the error is passed on to the guest kernel for handling. However, for guest kernels that have issued "ibm,nmi-register" call, QEMU should build an error log and pass on the error log to the guest- kernel registered machine check handler routine. This patch series adds the functionality to pass on the machine check exception to the guest kernel by giving control to QEMU. QEMU builds the error log and invokes the guest-kernel registered handler. QEMU part can be found at: http://lists.nongnu.org/archive/html/qemu-ppc/2015-12/msg00199.html Change Log v6: - Deliver all MCE errors (handled/unhandled) for FWNMI capable guest. - Use kvm_run->flags to pass NMI disposition status. Change Log v5: - Added capability documentation. No functionality/code change. Change Log v4: - Allow host-side handling of the machine check exception before passing on the exception to the guest. Change Log v3: - Split the patch into 2. First patch introduces the new capability while the second one enhances KVM to redirect MCE. - Fix access width bug Change Log v2: - Added KVM capability --- Aravinda Prasad (2): KVM: PPC: Add new capability to control MCE behaviour KVM: PPC: Exit guest upon MCE when FWNMI capability is enabled Documentation/virtual/kvm/api.txt | 11 +++++++ arch/powerpc/include/asm/kvm_host.h | 3 ++ arch/powerpc/include/asm/machdep.h | 7 ++++ arch/powerpc/include/asm/opal.h | 4 ++ arch/powerpc/include/uapi/asm/kvm.h | 6 ++++ arch/powerpc/kernel/asm-offsets.c | 1 + arch/powerpc/kvm/book3s_hv.c | 24 ++++++++++---- arch/powerpc/kvm/book3s_hv_ras.c | 18 ++++++++++- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 52 ++++++++++++++++++------------- arch/powerpc/kvm/powerpc.c | 7 ++++ arch/powerpc/platforms/powernv/opal.c | 26 ++++++++++++++++ arch/powerpc/platforms/powernv/setup.c | 3 ++ include/uapi/linux/kvm.h | 1 + 13 files changed, 133 insertions(+), 30 deletions(-) --