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