[GIT PULL] Second round of KVM changes for 4.12
From: Paolo Bonzini
Date: Wed May 10 2017 - 05:50:45 EST
Linus,
The following changes since commit 2868b2513aa732a99ea4a0a6bf10dc93c1f3dac2:
Merge tag 'linux-kselftest-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest (2017-05-08 20:43:30 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus
for you to fetch changes up to 36c344f3f1ffc0b1b20abd237b7401dc6687ee8f:
Merge tag 'kvm-arm-for-v4.12-round2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD (2017-05-09 12:51:49 +0200)
----------------------------------------------------------------
Second round of KVM Changes for v4.12:
* ARM: bugfixes; moved shared 32-bit/64-bit files to virt/kvm/arm;
support for saving/restoring virtual ITS state to userspace
* PPC: XIVE (eXternal Interrupt Virtualization Engine) support
* x86: nVMX improvements, including emulated page modification logging
(PML) which brings nice performance improvements on some workloads
----------------------------------------------------------------
Bandan Das (3):
kvm: x86: Add a hook for arch specific dirty logging emulation
nVMX: Implement emulated Page Modification Logging
nVMX: Advertise PML to L1 hypervisor
Benjamin Herrenschmidt (1):
KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller
Christoffer Dall (11):
KVM: arm/arm64: Move shared files to virt/kvm/arm
KVM: arm/arm64: Clarification and relaxation to ITS save/restore ABI
KVM: arm/arm64: vgic: Rename kvm_vgic_vcpu_init to kvm_vgic_vcpu_enable
KVM: Add kvm_vcpu_get_idx to get vcpu index in kvm->vcpus
KVM: arm/arm64: Refactor vgic_register_redist_iodevs
KVM: arm/arm64: Make vgic_v3_check_base more broadly usable
KVM: arm/arm64: Slightly rework kvm_vgic_addr
KVM: arm/arm64: Register iodevs when setting redist base and creating VCPUs
KVM: arm/arm64: Register ITS iodev when setting base address
KVM: arm/arm64: Don't call map_resources when restoring ITS tables
KVM: arm/arm64: vgic-its: Cleanup after failed ITT restore
Denis Kirjanov (1):
KVM: PPC: Book3S HV: Avoid preemptibility warning in module initialization
Eric Auger (24):
KVM: arm/arm64: Add ITS save/restore API documentation
KVM: arm/arm64: Add GICV3 pending table save API documentation
KVM: arm/arm64: vgic-its: rename itte into ite
arm/arm64: vgic: turn vgic_find_mmio_region into public
KVM: arm64: vgic-its: KVM_DEV_ARM_VGIC_GRP_ITS_REGS group
KVM: arm/arm64: vgic: expose (un)lock_all_vcpus
KVM: arm64: vgic-its: Implement vgic_its_has_attr_regs and attr_regs_access
KVM: arm64: vgic-its: Implement vgic_mmio_uaccess_write_its_creadr
KVM: arm64: vgic-its: Introduce migration ABI infrastructure
KVM: arm64: vgic-its: Implement vgic_mmio_uaccess_write_its_iidr
KVM: arm64: vgic-its: Interpret MAPD Size field and check related errors
KVM: arm64: vgic-its: Interpret MAPD ITT_addr field
KVM: arm64: vgic-its: Check the device id matches TYPER DEVBITS range
KVM: arm64: vgic-v3: vgic_v3_lpi_sync_pending_status
KVM: arm64: vgic-its: Read config and pending bit in add_lpi()
KVM: arm64: vgic-its: KVM_DEV_ARM_ITS_SAVE/RESTORE_TABLES
KVM: arm64: vgic-its: vgic_its_alloc_ite/device
KVM: arm64: vgic-its: Add infrastructure for table lookup
KVM: arm64: vgic-its: Collection table save/restore
KVM: arm64: vgic-its: vgic_its_check_id returns the entry's GPA
KVM: arm64: vgic-its: Device table save/restore
KVM: arm64: vgic-its: ITT save and restore
KVM: arm64: vgic-its: Fix pending table sync
KVM: arm64: vgic-v3: KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES
Geliang Tang (1):
KVM: set no_llseek in stat_fops_per_vm
Jim Mattson (1):
kvm: nVMX: Validate CR3 target count on nested VM-entry
Marc Zyngier (2):
arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
KVM: arm/arm64: Get rid of its->initialized field
Nicholas Piggin (1):
powerpc/64s: Revert setting of LPCR[LPES] on POWER9
Paolo Bonzini (2):
Merge branch 'kvm-ppc-next' of git://git.kernel.org/.../paulus/powerpc into HEAD
Merge tag 'kvm-arm-for-v4.12-round2' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
Paul Mackerras (1):
Merge remote-tracking branch 'remotes/powerpc/topic/xive' into kvm-ppc-next
Documentation/virtual/kvm/devices/arm-vgic-its.txt | 121 ++
Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 6 +
arch/arm/include/uapi/asm/kvm.h | 6 +-
arch/arm/kvm/Makefile | 7 +-
arch/arm/kvm/trace.h | 247 ---
arch/arm64/include/asm/kvm_emulate.h | 6 +
arch/arm64/include/uapi/asm/kvm.h | 6 +-
arch/arm64/kvm/Makefile | 5 +-
arch/arm64/kvm/sys_regs.c | 8 +-
arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +
arch/powerpc/include/asm/kvm_host.h | 28 +-
arch/powerpc/include/asm/kvm_ppc.h | 74 +
arch/powerpc/include/asm/xive.h | 9 +-
arch/powerpc/kernel/asm-offsets.c | 10 +
arch/powerpc/kvm/Kconfig | 5 +
arch/powerpc/kvm/Makefile | 4 +-
arch/powerpc/kvm/book3s.c | 75 +-
arch/powerpc/kvm/book3s_hv.c | 51 +-
arch/powerpc/kvm/book3s_hv_builtin.c | 103 ++
arch/powerpc/kvm/book3s_hv_rm_xics.c | 10 +-
arch/powerpc/kvm/book3s_hv_rm_xive.c | 47 +
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 62 +-
arch/powerpc/kvm/book3s_rtas.c | 21 +-
arch/powerpc/kvm/book3s_xics.c | 35 +-
arch/powerpc/kvm/book3s_xics.h | 7 +
arch/powerpc/kvm/book3s_xive.c | 1894 ++++++++++++++++++++
arch/powerpc/kvm/book3s_xive.h | 256 +++
arch/powerpc/kvm/book3s_xive_template.c | 503 ++++++
arch/powerpc/kvm/irq.h | 1 +
arch/powerpc/kvm/powerpc.c | 17 +-
arch/powerpc/platforms/powernv/opal.c | 1 +
arch/powerpc/sysdev/xive/common.c | 142 +-
arch/powerpc/sysdev/xive/native.c | 86 +-
arch/x86/include/asm/kvm_host.h | 2 +
arch/x86/kvm/mmu.c | 15 +
arch/x86/kvm/mmu.h | 1 +
arch/x86/kvm/paging_tmpl.h | 4 +
arch/x86/kvm/vmx.c | 105 +-
include/kvm/arm_vgic.h | 5 +-
include/linux/irqchip/arm-gic-v3.h | 14 +
include/linux/kvm_host.h | 12 +-
{arch/arm/kvm => virt/kvm/arm}/arm.c | 2 +-
{arch/arm/kvm => virt/kvm/arm}/mmio.c | 0
{arch/arm/kvm => virt/kvm/arm}/mmu.c | 0
{arch/arm/kvm => virt/kvm/arm}/perf.c | 0
{arch/arm/kvm => virt/kvm/arm}/psci.c | 0
virt/kvm/arm/trace.h | 246 ++-
virt/kvm/arm/vgic/trace.h | 37 +
virt/kvm/arm/vgic/vgic-init.c | 25 +-
virt/kvm/arm/vgic/vgic-its.c | 1234 +++++++++++--
virt/kvm/arm/vgic/vgic-kvm-device.c | 53 +-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 147 +-
virt/kvm/arm/vgic/vgic-mmio.c | 11 +-
virt/kvm/arm/vgic/vgic-mmio.h | 14 +-
virt/kvm/arm/vgic/vgic-v3.c | 128 +-
virt/kvm/arm/vgic/vgic.c | 2 +-
virt/kvm/arm/vgic/vgic.h | 33 +-
virt/kvm/kvm_main.c | 8 +-
58 files changed, 5318 insertions(+), 635 deletions(-)
create mode 100644 arch/powerpc/kvm/book3s_hv_rm_xive.c
create mode 100644 arch/powerpc/kvm/book3s_xive.c
create mode 100644 arch/powerpc/kvm/book3s_xive.h
create mode 100644 arch/powerpc/kvm/book3s_xive_template.c
rename {arch/arm/kvm => virt/kvm/arm}/arm.c (99%)
rename {arch/arm/kvm => virt/kvm/arm}/mmio.c (100%)
rename {arch/arm/kvm => virt/kvm/arm}/mmu.c (100%)
rename {arch/arm/kvm => virt/kvm/arm}/perf.c (100%)
rename {arch/arm/kvm => virt/kvm/arm}/psci.c (100%)
create mode 100644 virt/kvm/arm/vgic/trace.h