[GIT PULL] KVM changes for Linux 5.6-rc2

From: Paolo Bonzini
Date: Wed Feb 12 2020 - 11:47:21 EST


Linus,

The following changes since commit bb6d3fb354c5ee8d6bde2d576eb7220ea09862b9:

Linux 5.6-rc1 (2020-02-09 16:08:48 -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 c4c3fdc9c43b77f1b99c71d6edda8e20d00c3e2d:

docs: virt: guest-halt-polling.txt convert to ReST (2020-02-12 14:33:07 +0100)

----------------------------------------------------------------
A mix of cleanups and bugfixes, some of them slightly more invasive than usual
but still not worth waiting for 5.7. On top of this, Mauro converted the
KVM documentation to rst format, which was very welcome, and Eric ported
the selftests infrastructure to nested AMD virtualization (which will come
in handy when adding nested live migration support, as it did for Intel).

----------------------------------------------------------------
Eric Auger (4):
selftests: KVM: Replace get_{gdt,idt}_base() by get_{gdt,idt}()
selftests: KVM: AMD Nested test infrastructure
selftests: KVM: SVM: Add vmcall test
selftests: KVM: Remove unused x86_register enum

Marc Zyngier (1):
KVM: Disable preemption in kvm_get_running_vcpu()

Mauro Carvalho Chehab (28):
docs: kvm: add arm/pvtime.rst to index.rst
docs: virt: convert UML documentation to ReST
docs: virt: user_mode_linux.rst: update compiling instructions
docs: virt: user_mode_linux.rst: fix URL references
docs: virt: convert halt-polling.txt to ReST format
docs: virt: Convert msr.txt to ReST format
docs: kvm: devices/arm-vgic-its.txt to ReST format
docs: kvm: devices/arm-vgit-v3.txt to ReST
docs: kvm: convert devices/arm-vgit.txt to ReST
docs: kvm: convert devices/mpic.txt to ReST
docs: kvm: convert devices/s390_flic.txt to ReST
docs: kvm: convert devices/vcpu.txt to ReST
docs: kvm: convert devices/vfio.txt to ReST
docs: kvm: convert devices/vm.txt to ReST
docs: kvm: convert devices/xics.txt to ReST
docs: kvm: convert devices/xive.txt to ReST
docs: kvm: Convert api.txt to ReST format
docs: kvm: convert arm/hyp-abi.txt to ReST
docs: kvm: arm/psci.txt: convert to ReST
docs: kvm: Convert hypercalls.txt to ReST format
docs: kvm: Convert locking.txt to ReST format
docs: kvm: Convert mmu.txt to ReST format
docs: kvm: Convert nested-vmx.txt to ReST format
docs: kvm: Convert ppc-pv.txt to ReST format
docs: kvm: Convert s390-diag.txt to ReST format
docs: kvm: Convert timekeeping.txt to ReST format
docs: kvm: review-checklist.txt: rename to ReST
docs: virt: guest-halt-polling.txt convert to ReST

Miaohe Lin (3):
KVM: x86: remove duplicated KVM_REQ_EVENT request
KVM: apic: reuse smp_wmb() in kvm_make_request()
KVM: nVMX: Fix some comment typos and coding style

Oliver Upton (4):
KVM: x86: Mask off reserved bit from #DB exception payload
KVM: nVMX: Handle pending #DB when injecting INIT VM-exit
KVM: x86: Deliver exception payload on KVM_GET_VCPU_EVENTS
KVM: nVMX: Emulate MTF when performing instruction emulation

Paolo Bonzini (2):
KVM: x86: do not reset microcode version on INIT or RESET
KVM: x86: fix WARN_ON check of an unsigned less than zero

Peter Xu (4):
KVM: Provide kvm_flush_remote_tlbs_common()
KVM: MIPS: Drop flush_shadow_memslot() callback
KVM: MIPS: Replace all the kvm_flush_remote_tlbs() references
KVM: MIPS: Define arch-specific kvm_flush_remote_tlbs()

Sean Christopherson (6):
KVM: x86/mmu: Avoid retpoline on ->page_fault() with TDP
KVM: nVMX: Use correct root level for nested EPT shadow page tables
KVM: x86/mmu: Fix struct guest_walker arrays for 5-level paging
KVM: nVMX: Rename nested_ept_get_cr3() to nested_ept_get_eptp()
KVM: nVMX: Rename EPTP validity helper and associated variables
KVM: nVMX: Drop unnecessary check on ept caps for execute-only

.../guest-halt-polling.rst} | 12 +-
Documentation/virt/index.rst | 2 +
Documentation/virt/kvm/{api.txt => api.rst} | 3350 ++++++++++++--------
.../virt/kvm/arm/{hyp-abi.txt => hyp-abi.rst} | 28 +-
Documentation/virt/kvm/arm/index.rst | 12 +
Documentation/virt/kvm/arm/{psci.txt => psci.rst} | 46 +-
.../devices/{arm-vgic-its.txt => arm-vgic-its.rst} | 106 +-
.../devices/{arm-vgic-v3.txt => arm-vgic-v3.rst} | 132 +-
.../kvm/devices/{arm-vgic.txt => arm-vgic.rst} | 89 +-
Documentation/virt/kvm/devices/index.rst | 19 +
.../virt/kvm/devices/{mpic.txt => mpic.rst} | 11 +-
.../kvm/devices/{s390_flic.txt => s390_flic.rst} | 70 +-
Documentation/virt/kvm/devices/vcpu.rst | 114 +
Documentation/virt/kvm/devices/vcpu.txt | 76 -
.../virt/kvm/devices/{vfio.txt => vfio.rst} | 25 +-
Documentation/virt/kvm/devices/{vm.txt => vm.rst} | 206 +-
.../virt/kvm/devices/{xics.txt => xics.rst} | 28 +-
.../virt/kvm/devices/{xive.txt => xive.rst} | 152 +-
.../kvm/{halt-polling.txt => halt-polling.rst} | 90 +-
.../virt/kvm/{hypercalls.txt => hypercalls.rst} | 129 +-
Documentation/virt/kvm/index.rst | 16 +
Documentation/virt/kvm/locking.rst | 243 ++
Documentation/virt/kvm/locking.txt | 215 --
Documentation/virt/kvm/{mmu.txt => mmu.rst} | 62 +-
Documentation/virt/kvm/{msr.txt => msr.rst} | 147 +-
.../virt/kvm/{nested-vmx.txt => nested-vmx.rst} | 37 +-
Documentation/virt/kvm/{ppc-pv.txt => ppc-pv.rst} | 26 +-
.../{review-checklist.txt => review-checklist.rst} | 3 +
.../virt/kvm/{s390-diag.txt => s390-diag.rst} | 13 +-
.../virt/kvm/{timekeeping.txt => timekeeping.rst} | 223 +-
...UserModeLinux-HOWTO.txt => user_mode_linux.rst} | 1810 +++++------
arch/mips/include/asm/kvm_host.h | 7 -
arch/mips/kvm/Kconfig | 1 +
arch/mips/kvm/mips.c | 22 +-
arch/mips/kvm/trap_emul.c | 15 +-
arch/mips/kvm/vz.c | 14 +-
arch/x86/include/asm/kvm_host.h | 17 +-
arch/x86/include/uapi/asm/kvm.h | 1 +
arch/x86/kvm/lapic.c | 3 -
arch/x86/kvm/mmu.h | 13 +
arch/x86/kvm/mmu/mmu.c | 11 +-
arch/x86/kvm/mmu/paging_tmpl.h | 2 +-
arch/x86/kvm/svm.c | 3 +-
arch/x86/kvm/vmx/nested.c | 104 +-
arch/x86/kvm/vmx/nested.h | 9 +-
arch/x86/kvm/vmx/vmx.c | 42 +-
arch/x86/kvm/vmx/vmx.h | 3 +
arch/x86/kvm/x86.c | 44 +-
include/linux/kvm_host.h | 11 +-
tools/testing/selftests/kvm/Makefile | 3 +-
.../selftests/kvm/include/x86_64/processor.h | 44 +-
tools/testing/selftests/kvm/include/x86_64/svm.h | 297 ++
.../selftests/kvm/include/x86_64/svm_util.h | 38 +
tools/testing/selftests/kvm/lib/x86_64/svm.c | 161 +
tools/testing/selftests/kvm/lib/x86_64/vmx.c | 6 +-
.../testing/selftests/kvm/x86_64/svm_vmcall_test.c | 79 +
virt/kvm/arm/vgic/vgic-mmio.c | 12 -
virt/kvm/kvm_main.c | 22 +-
58 files changed, 5036 insertions(+), 3440 deletions(-)
rename Documentation/{virtual/guest-halt-polling.txt => virt/guest-halt-polling.rst} (91%)
rename Documentation/virt/kvm/{api.txt => api.rst} (71%)
rename Documentation/virt/kvm/arm/{hyp-abi.txt => hyp-abi.rst} (79%)
create mode 100644 Documentation/virt/kvm/arm/index.rst
rename Documentation/virt/kvm/arm/{psci.txt => psci.rst} (60%)
rename Documentation/virt/kvm/devices/{arm-vgic-its.txt => arm-vgic-its.rst} (71%)
rename Documentation/virt/kvm/devices/{arm-vgic-v3.txt => arm-vgic-v3.rst} (77%)
rename Documentation/virt/kvm/devices/{arm-vgic.txt => arm-vgic.rst} (66%)
create mode 100644 Documentation/virt/kvm/devices/index.rst
rename Documentation/virt/kvm/devices/{mpic.txt => mpic.rst} (91%)
rename Documentation/virt/kvm/devices/{s390_flic.txt => s390_flic.rst} (87%)
create mode 100644 Documentation/virt/kvm/devices/vcpu.rst
delete mode 100644 Documentation/virt/kvm/devices/vcpu.txt
rename Documentation/virt/kvm/devices/{vfio.txt => vfio.rst} (72%)
rename Documentation/virt/kvm/devices/{vm.txt => vm.rst} (61%)
rename Documentation/virt/kvm/devices/{xics.txt => xics.rst} (84%)
rename Documentation/virt/kvm/devices/{xive.txt => xive.rst} (62%)
rename Documentation/virt/kvm/{halt-polling.txt => halt-polling.rst} (64%)
rename Documentation/virt/kvm/{hypercalls.txt => hypercalls.rst} (55%)
create mode 100644 Documentation/virt/kvm/locking.rst
delete mode 100644 Documentation/virt/kvm/locking.txt
rename Documentation/virt/kvm/{mmu.txt => mmu.rst} (94%)
rename Documentation/virt/kvm/{msr.txt => msr.rst} (74%)
rename Documentation/virt/kvm/{nested-vmx.txt => nested-vmx.rst} (90%)
rename Documentation/virt/kvm/{ppc-pv.txt => ppc-pv.rst} (91%)
rename Documentation/virt/kvm/{review-checklist.txt => review-checklist.rst} (95%)
rename Documentation/virt/kvm/{s390-diag.txt => s390-diag.rst} (90%)
rename Documentation/virt/kvm/{timekeeping.txt => timekeeping.rst} (85%)
rename Documentation/virt/uml/{UserModeLinux-HOWTO.txt => user_mode_linux.rst} (74%)
create mode 100644 tools/testing/selftests/kvm/include/x86_64/svm.h
create mode 100644 tools/testing/selftests/kvm/include/x86_64/svm_util.h
create mode 100644 tools/testing/selftests/kvm/lib/x86_64/svm.c
create mode 100644 tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c