linux_dsm_epyc7002/arch/powerpc/include/uapi/asm
Aravinda Prasad e20bbd3d8d KVM: PPC: Book3S HV: Exit guest upon MCE when FWNMI capability is enabled
Enhance KVM to cause a guest exit with KVM_EXIT_NMI
exit reason upon a machine check exception (MCE) in
the guest address space if the KVM_CAP_PPC_FWNMI
capability is enabled (instead of delivering a 0x200
interrupt to guest). This enables QEMU to build error
log and deliver machine check exception to guest via
guest registered machine check handler.

This approach simplifies the delivery of machine
check exception to guest OS compared to the earlier
approach of KVM directly invoking 0x200 guest interrupt
vector.

This design/approach is based on the feedback for the
QEMU patches to handle machine check exception. Details
of earlier approach of handling machine check exception
in QEMU and related discussions can be found at:

https://lists.nongnu.org/archive/html/qemu-devel/2014-11/msg00813.html

Note:

This patch now directly invokes machine_check_print_event_info()
from kvmppc_handle_exit_hv() to print the event to host console
at the time of guest exit before the exception is passed on to the
guest. Hence, the host-side handling which was performed earlier
via machine_check_fwnmi is removed.

The reasons for this approach is (i) it is not possible
to distinguish whether the exception occurred in the
guest or the host from the pt_regs passed on the
machine_check_exception(). Hence machine_check_exception()
calls panic, instead of passing on the exception to
the guest, if the machine check exception is not
recoverable. (ii) the approach introduced in this
patch gives opportunity to the host kernel to perform
actions in virtual mode before passing on the exception
to the guest. This approach does not require complex
tweaks to machine_check_fwnmi and friends.

Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
2017-06-22 11:24:57 +10:00
..
auxvec.h powerpc: Add new cache geometry aux vectors 2017-02-06 19:46:04 +11:00
bitsperlong.h
bootx.h
byteorder.h powerpc: Include the appropriate endianness header 2013-10-11 16:48:33 +11:00
cputable.h powerpc/64s: Support new device tree binding for discovering CPU features 2017-05-09 23:42:55 +10:00
eeh.h powerpc/eeh: Introduce eeh_pe_inject_err() 2015-05-12 20:33:35 +10:00
elf.h powerpc: Move ARCH_DLINFO out of uapi 2017-02-06 19:46:04 +11:00
epapr_hcalls.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
errno.h powerpc/kernel: Switch to using MAX_ERRNO 2015-07-29 11:56:11 +10:00
fcntl.h
ioctl.h
ioctls.h tty, ioctls -- Add new ioctl definitions for tty flags fetching 2012-10-25 12:07:18 -07:00
ipcbuf.h
Kbuild uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
kvm_para.h KVM: PPC: Disable NX for old magic page using guests 2014-05-30 14:26:24 +02:00
kvm.h KVM: PPC: Book3S HV: Exit guest upon MCE when FWNMI capability is enabled 2017-06-22 11:24:57 +10:00
mman.h powerpc/hugetlb: Add ABI defines for supported HugeTLB page sizes 2017-04-11 07:46:06 +10:00
msgbuf.h
nvram.h
opal-prd.h powerpc/powernv: Add opal-prd channel 2015-06-05 08:32:21 +10:00
param.h
perf_event.h powerpc/perf: Export PERF_EVENT_CONFIG_EBB_SHIFT to userspace 2013-08-01 13:11:46 +10:00
perf_regs.h powerpc/perf: Assign an id to each powerpc register 2016-04-21 23:32:59 +10:00
poll.h
posix_types.h
ps3fb.h
ptrace.h powerpc: Change vrX register defines to vX to match gcc and glibc 2015-03-16 18:32:11 +11:00
resource.h
sembuf.h
setup.h powerpc: Bump COMMAND_LINE_SIZE to 2048 2014-04-28 16:31:58 +10:00
shmbuf.h
sigcontext.h powerpc/signal: Fix confusing header documentation in sigcontext.h 2015-07-16 16:14:40 +10:00
siginfo.h
signal.h powerpc: switch to generic old sigaction() 2013-02-03 18:16:10 -05:00
socket.h New getsockopt option to get socket cookie 2017-04-08 08:07:01 -07:00
sockios.h
spu_info.h
stat.h
statfs.h
swab.h
termbits.h
termios.h
tm.h powerpc/tm: Abort syscalls in active transactions 2015-06-19 17:10:28 +10:00
types.h
ucontext.h
unistd.h powerpc: Wire up statx() syscall 2017-03-16 20:45:53 +11:00