[GIT PULL] Second batch of KVM changes for Linux 4.15

From: Paolo Bonzini
Date: Mon Nov 20 2017 - 19:06:56 EST


The following changes since commit cf9b0772f2e410645fece13b749bd56505b998b8:

Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2017-11-16 16:05:01 -0800)

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 2444ba9dcdceb6fc60737b22d4dca0a728296ece:

KVM: X86: Fix softlockup when get the current kvmclock (2017-11-21 00:11:31 +0100)

* GICv4 Support for KVM/ARM for v4.15
* x86 bugfixes: APIC, nested virtualization, IOAPIC, AMD+VFIO performance
issue with npt=1
* x86 guest UMIP support (real and emulated)

I am not including the host side of AMD SEV, because it wouldn't have gotten
enough time in linux-next even with a "regular-length" merge window. It
will be in 4.16.

Christoffer Dall (3):
Merge git://git.kernel.org/.../tip/tip.git irq/core
KVM: arm/arm64: Fix GICv4 ITS initialization issues
KVM: arm/arm64: Don't queue VLPIs on INV/INVALL

David Hildenbrand (1):
KVM: x86: fix em_fxstor() sleeping while in atomic

Dr. David Alan Gilbert (2):
KVM: lapic: Split out x2apic ldr calculation
KVM: lapic: Fixup LDR on load in x2apic

Eric Auger (2):
KVM: arm/arm64: register irq bypass consumer on ARM/ARM64
KVM: arm/arm64: vgic: restructure kvm_vgic_(un)map_phys_irq

Eyal Moscovici (1):
KVM: x86: Allow suppressing prints on RDMSR/WRMSR of unhandled MSRs

Gimcuan Hui (1):
x86: kvm: mmu: make kvm_mmu_clear_all_pte_masks static

Janakarajan Natarajan (1):
KVM: x86: Fix CPUID function for word 6 (80000001_ECX)

Liran Alon (6):
KVM: x86: pvclock: Handle first-time write to pvclock-page contains random junk
KVM: nVMX/nSVM: Don't intercept #UD when running L2
KVM: x86: Exit to user-mode on #UD intercept when emulator requires
KVM: x86: emulator: Return to user-mode on L1 CPL=0 emulation failure
KVM: x86: Don't re-execute instruction when not passing CR2 value
KVM: nVMX: Fix vmx_check_nested_events() return value in case an event was reinjected to L2

Marc Zyngier (23):
KVM: arm: Select ARM_GIC_V3 and ARM_GIC_V3_ITS
KVM: arm/arm64: vgic: Move kvm_vgic_destroy call around
KVM: arm/arm64: vITS: Add MSI translation helpers
KVM: arm/arm64: vITS: Add a helper to update the affinity of an LPI
KVM: arm/arm64: GICv4: Add property field and per-VM predicate
KVM: arm/arm64: GICv4: Add init/teardown of the per-VM vPE irq domain
KVM: arm/arm64: GICv4: Wire mapping/unmapping of VLPIs in VFIO irq bypass
KVM: arm/arm64: GICv4: Handle INT command applied to a VLPI
KVM: arm/arm64: GICv4: Unmap VLPI when freeing an LPI
KVM: arm/arm64: GICv4: Propagate affinity changes to the physical ITS
KVM: arm/arm64: GICv4: Handle CLEAR applied to a VLPI
KVM: arm/arm64: GICv4: Handle MOVALL applied to a vPE
KVM: arm/arm64: GICv4: Propagate property updates to VLPIs
KVM: arm/arm64: GICv4: Handle INVALL applied to a vPE
KVM: arm/arm64: GICv4: Use pending_last as a scheduling hint
KVM: arm/arm64: GICv4: Add doorbell interrupt handling
KVM: arm/arm64: GICv4: Use the doorbell interrupt as an unblocking source
KVM: arm/arm64: GICv4: Hook vPE scheduling into vgic flush/sync
KVM: arm/arm64: GICv4: Enable virtual cpuif if VLPIs can be delivered
KVM: arm/arm64: GICv4: Prevent a VM using GICv4 from being saved
KVM: arm/arm64: GICv4: Prevent userspace from changing doorbell affinity
KVM: arm/arm64: GICv4: Enable VLPI support
KVM: arm/arm64: GICv4: Theory of operations

Nikita Leshenko (5):
KVM: x86: ioapic: Fix level-triggered EOI and IOAPIC reconfigure race
KVM: x86: ioapic: Don't fire level irq when Remote IRR set
KVM: x86: ioapic: Remove redundant check for Remote IRR in ioapic_set_irq
KVM: x86: ioapic: Clear Remote IRR when entry is switched to edge-triggered
KVM: x86: ioapic: Preserve read-only values in the redirection table

Paolo Bonzini (11):
Merge tag 'kvm-arm-gicv4-for-v4.15' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
KVM: SVM: obey guest PAT
kvm: vmx: Reinstate support for CPUs without virtual NMI
kvm: vmx: Allow disabling virtual NMI support
KVM: x86: inject exceptions produced by x86_decode_insn
KVM: vmx: use X86_CR4_UMIP and X86_FEATURE_UMIP
KVM: x86: add support for UMIP
KVM: x86: emulate sldt and str
KVM: x86: add support for emulating UMIP
KVM: vmx: add support for emulating UMIP
KVM: x86: emulate RDPID

Wanpeng Li (4):
KVM: X86: Fix operand/address-size during instruction decoding
KVM: nVMX: Validate the IA32_BNDCFGS on nested VM-entry
KVM: nVMX: Fix mmu context after VMLAUNCH/VMRESUME failure
KVM: X86: Fix softlockup when get the current kvmclock

Documentation/admin-guide/kernel-parameters.txt | 4 +
Documentation/virtual/kvm/devices/arm-vgic-its.txt | 2 +
arch/arm/kvm/Kconfig | 5 +
arch/arm/kvm/Makefile | 1 +
arch/arm64/kvm/Kconfig | 3 +
arch/arm64/kvm/Makefile | 1 +
arch/x86/include/asm/kvm_host.h | 6 +-
arch/x86/kvm/cpuid.c | 13 +-
arch/x86/kvm/cpuid.h | 2 +-
arch/x86/kvm/emulate.c | 101 +++++-
arch/x86/kvm/ioapic.c | 34 +-
arch/x86/kvm/lapic.c | 12 +-
arch/x86/kvm/mmu.c | 2 +-
arch/x86/kvm/svm.c | 24 +-
arch/x86/kvm/vmx.c | 277 ++++++++++++----
arch/x86/kvm/x86.c | 38 ++-
include/kvm/arm_vgic.h | 41 ++-
virt/kvm/arm/arch_timer.c | 24 +-
virt/kvm/arm/arm.c | 48 ++-
virt/kvm/arm/hyp/vgic-v3-sr.c | 9 +-
virt/kvm/arm/vgic/vgic-init.c | 7 +
virt/kvm/arm/vgic/vgic-its.c | 204 ++++++++----
virt/kvm/arm/vgic/vgic-mmio-v3.c | 5 +
virt/kvm/arm/vgic/vgic-v3.c | 14 +
virt/kvm/arm/vgic/vgic-v4.c | 364 +++++++++++++++++++++
virt/kvm/arm/vgic/vgic.c | 67 +++-
virt/kvm/arm/vgic/vgic.h | 10 +
27 files changed, 1092 insertions(+), 226 deletions(-)
create mode 100644 virt/kvm/arm/vgic/vgic-v4.c