[GIT PULL] Second batch of KVM changes for 4.19-rc1

From: Paolo Bonzini
Date: Wed Aug 22 2018 - 12:55:17 EST


Linus,

The following changes since commit ad1d69735878a6bf797705b5d2a20316d35e1113:

Merge tag 'fuse-update-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse (2018-08-21 18:47:36 -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 0027ff2a75f9dcf0537ac0a65c5840b0e21a4950:

KVM: VMX: fixes for vmentry_l1d_flush module parameter (2018-08-22 16:48:39 +0200)

----------------------------------------------------------------
ARM: Support for Group0 interrupts in guests, Cache management
optimizations for ARMv8.4 systems, Userspace interface for RAS, Fault
path optimization, Emulated physical timer fixes, Random cleanups

x86: fixes for L1TF, a new test case, non-support for SGX (inject the
right exception in the guest), a lockdep false positive

----------------------------------------------------------------

Since you mentioned this in the past as something you'd like to be told
about, don't read too much into the commit dates; I added some last-minute
stable Ccs.

Arnd Bergmann (1):
x86: kvm: avoid unused variable warning

Christoffer Dall (13):
KVM: arm/arm64: Fix vgic init race
KVM: arm/arm64: vgic: Define GICD_IIDR fields for GICv2 and GIv3
KVM: arm/arm64: vgic: Keep track of implementation revision
KVM: arm/arm64: vgic: GICv2 IGROUPR should read as zero
KVM: arm/arm64: vgic: Add group field to struct irq
KVM: arm/arm64: vgic: Signal IRQs using their configured group
KVM: arm/arm64: vgic: Permit uaccess writes to return errors
KVM: arm/arm64: vgic: Return error on incompatible uaccess GICD_IIDR writes
KVM: arm/arm64: vgic: Allow configuration of interrupt groups
KVM: arm/arm64: vgic: Let userspace opt-in to writable v2 IGROUPR
KVM: arm/arm64: vgic: Update documentation of the GIC devices wrt IIDR
KVM: arm/arm64: Fix potential loss of ptimer interrupts
KVM: arm/arm64: Fix lost IRQs from emulated physcial timer when blocked

Dongjiu Geng (3):
arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS
arm64: KVM: export the capability to set guest SError syndrome
KVM: Documentation: rename the capability of KVM_CAP_ARM_SET_SERROR_ESR

Gustavo A. R. Silva (1):
KVM: arm: Use true and false for boolean values

James Morse (2):
KVM: arm64: Share the parts of get/set events useful to 32bit
KVM: arm: Add 32bit get/set events support

Jia He (2):
KVM: arm/arm64: vgic: Move DEBUG_SPINLOCK_BUG_ON to vgic.h
KVM: arm/arm64: vgic: Do not use spin_lock_irqsave/restore with irq disabled

Kees Cook (1):
KVM: arm64: vgic-its: Remove VLA usage

Marc Zyngier (13):
arm64: KVM: Add support for Stage-2 control of memory types and cacheability
arm64: KVM: Handle Set/Way CMOs as NOPs if FWB is present
arm64: KVM: Avoid marking pages as XN in Stage-2 if CTR_EL0.DIC is set
KVM: arm/arm64: Consolidate page-table accessors
KVM: arm/arm64: Stop using the kernel's {pmd,pud,pgd}_populate helpers
KVM: arm/arm64: Remove unnecessary CMOs when creating HYP page tables
KVM: arm/arm64: Enable adaptative WFE trapping
KVM: arm/arm64: vgic-debug: Show LPI status
arm64: KVM: Cleanup tpidr_el2 init on non-VHE
KVM: arm64: Remove non-existent AArch32 ICC_SGI1R encoding
KVM: arm/arm64: vgic-v3: Add core support for Group0 SGIs
KVM: arm64: vgic-v3: Add support for ICC_SGI0R_EL1 and ICC_ASGI1R_EL1 accesses
KVM: arm: vgic-v3: Add support for ICC_SGI0R and ICC_ASGI1R accesses

Mark Rutland (1):
KVM: arm/arm64: vgic: Fix possible spectre-v1 write in vgic_mmio_write_apr()

Paolo Bonzini (2):
Merge tag 'kvmarm-for-v4.19' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
KVM: VMX: fixes for vmentry_l1d_flush module parameter

Peter Xu (5):
tools: introduce test_and_clear_bit
kvm: selftest: unify the guest port macros
kvm: selftest: include the tools headers
kvm: selftest: pass in extra memory when create vm
kvm: selftest: add dirty logging test

Punit Agrawal (2):
KVM: arm/arm64: Skip updating PMD entry if no change
KVM: arm/arm64: Skip updating PTE entry if no change

Sean Christopherson (2):
KVM: vmx: Add defines for SGX ENCLS exiting
KVM: vmx: Inject #UD for SGX ENCLS instruction in guest

Thomas Gleixner (1):
KVM: x86: SVM: Call x86_spec_ctrl_set_guest/host() with interrupts disabled

Yi Wang (1):
x86/kvm/vmx: Fix coding style in vmx_setup_l1d_flush()

Documentation/virtual/kvm/api.txt | 80 +++++-
Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 8 +
Documentation/virtual/kvm/devices/arm-vgic.txt | 15 +-
arch/arm/include/asm/kvm_emulate.h | 12 +-
arch/arm/include/asm/kvm_host.h | 5 +
arch/arm/include/asm/kvm_mmu.h | 14 +-
arch/arm/include/uapi/asm/kvm.h | 13 +
arch/arm/kvm/coproc.c | 25 +-
arch/arm/kvm/guest.c | 23 ++
arch/arm64/include/asm/cpucaps.h | 3 +-
arch/arm64/include/asm/kvm_arm.h | 1 +
arch/arm64/include/asm/kvm_emulate.h | 17 ++
arch/arm64/include/asm/kvm_host.h | 28 +-
arch/arm64/include/asm/kvm_mmu.h | 35 ++-
arch/arm64/include/asm/memory.h | 7 +
arch/arm64/include/asm/pgtable-prot.h | 24 +-
arch/arm64/include/asm/sysreg.h | 3 +
arch/arm64/include/uapi/asm/kvm.h | 13 +
arch/arm64/kernel/cpufeature.c | 20 ++
arch/arm64/kvm/guest.c | 33 +++
arch/arm64/kvm/hyp-init.S | 6 +-
arch/arm64/kvm/hyp/sysreg-sr.c | 5 -
arch/arm64/kvm/inject_fault.c | 6 +-
arch/arm64/kvm/reset.c | 4 +
arch/arm64/kvm/sys_regs.c | 54 +++-
arch/x86/include/asm/vmx.h | 3 +
arch/x86/kvm/svm.c | 8 +-
arch/x86/kvm/vmx.c | 72 +++--
arch/x86/kvm/x86.c | 4 +-
include/kvm/arm_vgic.h | 9 +-
include/linux/irqchip/arm-gic-v3.h | 10 +
include/linux/irqchip/arm-gic.h | 11 +
include/uapi/linux/kvm.h | 1 +
tools/include/linux/bitmap.h | 17 ++
tools/testing/selftests/kvm/Makefile | 5 +-
tools/testing/selftests/kvm/cr4_cpuid_sync_test.c | 32 +--
tools/testing/selftests/kvm/dirty_log_test.c | 308 ++++++++++++++++++++++
tools/testing/selftests/kvm/include/kvm_util.h | 45 +++-
tools/testing/selftests/kvm/include/test_util.h | 2 -
tools/testing/selftests/kvm/lib/kvm_util.c | 58 ++++
tools/testing/selftests/kvm/lib/x86.c | 18 +-
tools/testing/selftests/kvm/set_sregs_test.c | 2 +-
tools/testing/selftests/kvm/state_test.c | 32 +--
tools/testing/selftests/kvm/sync_regs_test.c | 21 +-
tools/testing/selftests/kvm/vmx_tsc_adjust_test.c | 43 +--
virt/kvm/arm/arch_timer.c | 15 +-
virt/kvm/arm/arm.c | 51 ++++
virt/kvm/arm/mmu.c | 87 ++++--
virt/kvm/arm/vgic/vgic-debug.c | 50 +++-
virt/kvm/arm/vgic/vgic-init.c | 24 +-
virt/kvm/arm/vgic/vgic-its.c | 27 +-
virt/kvm/arm/vgic/vgic-mmio-v2.c | 66 ++++-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 72 +++--
virt/kvm/arm/vgic/vgic-mmio.c | 56 +++-
virt/kvm/arm/vgic/vgic-mmio.h | 25 +-
virt/kvm/arm/vgic/vgic-v2.c | 10 +-
virt/kvm/arm/vgic/vgic-v3.c | 13 +-
virt/kvm/arm/vgic/vgic.c | 19 +-
virt/kvm/arm/vgic/vgic.h | 7 +
59 files changed, 1372 insertions(+), 305 deletions(-)
create mode 100644 tools/testing/selftests/kvm/dirty_log_test.c