2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-06 20:53:54 +08:00
linux-next/arch/powerpc
Paul Mackerras 55b665b026 KVM: PPC: Book3S HV: Provide a way for userspace to get/set per-vCPU areas
The PAPR paravirtualization interface lets guests register three
different types of per-vCPU buffer areas in its memory for communication
with the hypervisor.  These are called virtual processor areas (VPAs).
Currently the hypercalls to register and unregister VPAs are handled
by KVM in the kernel, and userspace has no way to know about or save
and restore these registrations across a migration.

This adds "register" codes for these three areas that userspace can
use with the KVM_GET/SET_ONE_REG ioctls to see what addresses have
been registered, and to register or unregister them.  This will be
needed for guest hibernation and migration, and is also needed so
that userspace can unregister them on reset (otherwise we corrupt
guest memory after reboot by writing to the VPAs registered by the
previous kernel).

The "register" for the VPA is a 64-bit value containing the address,
since the length of the VPA is fixed.  The "registers" for the SLB
shadow buffer and dispatch trace log (DTL) are 128 bits long,
consisting of the guest physical address in the high (first) 64 bits
and the length in the low 64 bits.

This also fixes a bug where we were calling init_vpa unconditionally,
leading to an oops when unregistering the VPA.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2012-10-05 23:38:55 +02:00
..
boot powerpc/p4080ds: dts - add usb controller version info and port0 2012-08-10 07:47:02 -05:00
configs Revert "powerpc: Update g5_defconfig" 2012-08-24 20:55:55 +10:00
include/asm KVM: PPC: Book3S HV: Provide a way for userspace to get/set per-vCPU areas 2012-10-05 23:38:55 +02:00
kernel powerpc/epapr: export epapr_hypercall_start 2012-10-05 23:38:40 +02:00
kvm KVM: PPC: Book3S HV: Provide a way for userspace to get/set per-vCPU areas 2012-10-05 23:38:55 +02:00
lib powerpc: Fix VMX in interrupt check in POWER7 copy loops 2012-08-24 20:26:09 +10:00
math-emu powerpc/math_emu/efp: Look for errata handler when type mismatches 2011-10-06 23:36:47 -05:00
mm KVM: PPC: Add cache flush on page map 2012-08-16 14:14:53 +02:00
net powerpc: Start using ___PPC_RA/B/S/T where necessary 2012-07-10 19:18:25 +10:00
oprofile Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
perf powerpc/perf: Use pmc_overflow() to detect rolled back events 2012-08-24 20:26:10 +10:00
platforms PPC: select EPAPR_PARAVIRT for all users of epapr hcalls 2012-10-05 23:38:37 +02:00
sysdev powerpc/fsl-soc: use CONFIG_EPAPR_PARAVIRT for hcalls 2012-10-05 23:38:38 +02:00
xmon powerpc: Fixup whitespace in xmon 2012-08-24 20:26:03 +10:00
Kconfig ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION 2012-07-30 17:25:21 -07:00
Kconfig.debug powerpc: IOMMU fault injection 2012-07-10 19:18:59 +10:00
Makefile crypto: nx - move nx build to driver/crypto Makefile 2012-06-27 14:42:00 +08:00
relocs_check.pl powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00