Web lists-archives.com

[GIT PULL] KVM changes for 4.18 merge window




Linus,

The following changes since commit 73fcb1a370c76b202d406e95d9dabb76eaccf484:

  Merge branch 'akpm' (patches from Andrew) (2018-05-18 21:24:26 -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 766d3571d8e50d3a73b77043dc632226f9e6b389:

  kvm: fix typo in flag name (2018-06-12 15:06:35 +0200)

Sorry for the late pull request, I really wanted to get the top four
patches in because a (wrong) patch for that bug was sent to the list
about a week ago.  I didn't get as much attention/as many reviews as I
hoped for, but here they are anyway.  They aren't complicated, only
a bit tedious, so I'm not (too) worried.

Paolo

----------------------------------------------------------------
Small update for KVM.

* ARM: lazy context-switching of FPSIMD registers on arm64, "split"
regions for vGIC redistributor

* s390: cleanups for nested, clock handling, crypto, storage keys and
control register bits

* x86: many bugfixes, implement more Hyper-V super powers,
implement lapic_timer_advance_ns even when the LAPIC timer
is emulated using the processor's VMX preemption timer.  Two
security-related bugfixes at the top of the branch.

----------------------------------------------------------------
Arnd Bergmann (1):
      KVM: x86: use timespec64 for KVM_HC_CLOCK_PAIRING

Christian Borntraeger (1):
      Merge tag 'kvm-s390-master-4.17-1'

Christoffer Dall (1):
      KVM: arm/arm64: Introduce kvm_arch_vcpu_run_pid_change

Dan Carpenter (1):
      KVM: x86: prevent integer overflows in KVM_MEMORY_ENCRYPT_REG_REGION

Dave Martin (18):
      arm64: fpsimd: Fix TIF_FOREIGN_FPSTATE after invalidating cpu regs
      thread_info: Add update_thread_flag() helpers
      arm64: Use update{,_tsk}_thread_flag()
      KVM: arm64: Convert lazy FPSIMD context switch trap to C
      arm64: fpsimd: Generalise context saving for non-task contexts
      arm64: fpsimd: Avoid FPSIMD context leakage for the init task
      arm64: fpsimd: Eliminate task->mm checks
      arm64/sve: Refactor user SVE trap maintenance for external use
      KVM: arm64: Repurpose vcpu_arch.debug_flags for general-purpose flags
      KVM: arm64: Optimise FPSIMD handling to reduce guest/host thrashing
      arm64/sve: Move read_zcr_features() out of cpufeature.h
      arm64/sve: Switch sve_pffr() argument from task to thread
      arm64/sve: Move sve_pffr() to fpsimd.h and make inline
      KVM: arm64: Save host SVE context as appropriate
      KVM: arm64: Remove eager host SVE state saving
      KVM: arm64: Remove redundant *exit_code changes in fpsimd_guest_exit()
      KVM: arm64: Fold redundant exit code checks out of fixup_guest_exit()
      KVM: arm64: Invoke FPSIMD context switch trap from C

David Hildenbrand (4):
      KVM: s390: introduce defines for control registers
      KVM: s390: no need to inititalize kvm->arch members to 0
      KVM: s390: generalize kvm_s390_get_tod_clock_ext()
      KVM: s390: vsie: simplify < 8k address checks

Eric Auger (13):
      KVM: arm/arm64: Set dist->spis to NULL after kfree
      KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
      KVM: arm/arm64: Replace the single rdist region by a list
      KVM: arm/arm64: Helper to locate free rdist index
      KVM: arm/arm64: Revisit Redistributor TYPER last bit computation
      KVM: arm/arm64: Adapt vgic_v3_check_base to multiple rdist regions
      KVM: arm/arm64: Helper to register a new redistributor region
      KVM: arm/arm64: Remove kvm_vgic_vcpu_early_init
      KVM: arm/arm64: Check vcpu redist base before registering an iodev
      KVM: arm/arm64: Check all vcpu redistributors are set on map_resources
      KVM: arm/arm64: Add KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
      KVM: arm/arm64: Implement KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
      KVM: arm/arm64: Bump VGIC_V3_MAX_CPUS to 512

Felix Wilhelm (1):
      kvm: nVMX: Enforce cpl=0 for VMX instructions

Greg Kroah-Hartman (1):
      kvm: no need to check return value of debugfs_create functions

Janosch Frank (1):
      KVM: s390: Add storage key facility interpretation control

Jim Mattson (11):
      kvm: vmx: Introduce lapic_mode enumeration
      kvm: vmx: Basic APIC virtualization controls have three settings
      kvm: nVMX: Eliminate APIC access page sharing between L1 and L2
      kvm: mmu: Add guest_mode to kvm_mmu_page_role
      kvm: mmu: Don't expose private memslots to L2
      kvm: nVMX: Use nested_run_pending rather than from_vmentry
      KVM: nVMX: Restore the VMCS12 offsets for v4.0 fields
      KVM: nVMX: Ensure that VMCS12 field offsets do not change
      kvm: x86: Amend the KVM_GET_SUPPORTED_CPUID API documentation
      kvm: nVMX: Restrict VMX capability MSR changes
      kvm: nVMX: Add support for "VMWRITE to any supported field"

Jingqi Liu (1):
      KVM: x86: Expose CLDEMOTE CPU feature to guest VM

Junaid Shahid (1):
      kvm: x86: Refactor mmu_free_roots()

K. Y. Srinivasan (5):
      X86/Hyper-V: Enlighten APIC access
      X86/Hyper-V: Enable IPI enlightenments
      X86/Hyper-V: Enhanced IPI enlightenment
      X86/Hyper-V: Consolidate code for converting cpumask to vpset
      X86/Hyper-V: Consolidate the allocation of the hypercall input page

Liran Alon (6):
      KVM: nVMX: Use vmx local var for referencing vpid02
      KVM: nVMX: Don't flush TLB when vmcs12 uses VPID
      KVM: nVMX: Emulate L1 individual-address invvpid by L0 individual-address invvpid
      KVM: docs: mmu: Fix link to NPT presentation from KVM Forum 2008
      KVM: docs: mmu: KVM support exposing SLAT to guests
      KVM: docs: nVMX: Remove known limitations as they do not exist now

Marc Orr (1):
      kvm: Make VM ioctl do valloc for some archs

Mark Rutland (1):
      arm64: KVM: Use lm_alias() for kvm_ksym_ref()

Michael S. Tsirkin (1):
      kvm: fix typo in flag name

Paolo Bonzini (5):
      Merge tag 'kvmarm-for-v4.18' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
      Merge tag 'kvm-s390-next-4.18-1' of git://git.kernel.org/.../kvms390/linux into HEAD
      KVM: x86: introduce linear_{read,write}_system
      KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and kvm_write_guest_virt_system
      kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access

Radim Krčmář (1):
      Merge branch 'x86/hyperv' of git://git.kernel.org/.../tip/tip

Sean Christopherson (1):
      KVM: x86: remove obsolete EXPORT... of handle_mmio_page_fault

Souptick Joarder (1):
      kvm: Change return type to vm_fault_t

Thomas Gleixner (2):
      x86/Hyper-V/hv_apic: Include asm/apic.h
      x86/Hyper-V/hv_apic: Build the Hyper-V APIC conditionally

Tony Krowiak (1):
      KVM: s390: reset crypto attributes for all vcpus

Vitaly Kuznetsov (8):
      KVM: x86: VMX: hyper-v: Enlightened MSR-Bitmap support
      x86/hyper-v: move struct hv_flush_pcpu{,ex} definitions to common header
      KVM: x86: hyperv: use defines when parsing hypercall parameters
      KVM: x86: hyperv: do rep check for each hypercall separately
      KVM: introduce kvm_make_vcpus_request_mask() API
      KVM: x86: hyperv: simplistic HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE} implementation
      KVM: x86: hyperv: simplistic HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE}_EX implementation
      KVM: x86: hyperv: declare KVM_CAP_HYPERV_TLBFLUSH capability

Wanpeng Li (2):
      KVM: X86: Fix reserved bits check for MOV to CR3
      KVM: VMX: Optimize tscdeadline timer latency

 Documentation/virtual/kvm/api.txt                 |  27 +-
 Documentation/virtual/kvm/devices/arm-vgic-v3.txt |  30 +-
 Documentation/virtual/kvm/mmu.txt                 |   6 +-
 Documentation/virtual/kvm/nested-vmx.txt          |  11 -
 arch/arm/include/asm/kvm_host.h                   |  14 +-
 arch/arm/include/uapi/asm/kvm.h                   |   1 +
 arch/arm64/Kconfig                                |   7 +
 arch/arm64/include/asm/cpufeature.h               |  29 --
 arch/arm64/include/asm/fpsimd.h                   |  21 +
 arch/arm64/include/asm/kvm_asm.h                  |   8 +-
 arch/arm64/include/asm/kvm_host.h                 |  49 ++-
 arch/arm64/include/asm/processor.h                |  15 +-
 arch/arm64/include/asm/thread_info.h              |  13 +-
 arch/arm64/include/uapi/asm/kvm.h                 |   1 +
 arch/arm64/kernel/fpsimd.c                        | 177 ++++----
 arch/arm64/kernel/ptrace.c                        |   1 +
 arch/arm64/kvm/Kconfig                            |   1 +
 arch/arm64/kvm/Makefile                           |   2 +-
 arch/arm64/kvm/debug.c                            |   8 +-
 arch/arm64/kvm/fpsimd.c                           | 110 +++++
 arch/arm64/kvm/hyp/debug-sr.c                     |   6 +-
 arch/arm64/kvm/hyp/entry.S                        |  43 --
 arch/arm64/kvm/hyp/hyp-entry.S                    |  19 -
 arch/arm64/kvm/hyp/switch.c                       | 124 ++++--
 arch/arm64/kvm/hyp/sysreg-sr.c                    |   4 +-
 arch/arm64/kvm/sys_regs.c                         |   9 +-
 arch/mips/kvm/mips.c                              |   2 +-
 arch/powerpc/kvm/book3s_hv.c                      |   3 +-
 arch/powerpc/kvm/powerpc.c                        |   2 +-
 arch/s390/include/asm/ctl_reg.h                   |  12 +
 arch/s390/include/asm/kvm_host.h                  |   1 +
 arch/s390/include/asm/mmu.h                       |   2 +-
 arch/s390/include/asm/mmu_context.h               |   2 +-
 arch/s390/include/asm/pgtable.h                   |   4 +-
 arch/s390/kvm/guestdbg.c                          |   2 +-
 arch/s390/kvm/interrupt.c                         |  20 +-
 arch/s390/kvm/kvm-s390.c                          |  61 +--
 arch/s390/kvm/kvm-s390.h                          |  13 +
 arch/s390/kvm/priv.c                              |  28 +-
 arch/s390/kvm/vsie.c                              |  10 +-
 arch/s390/mm/gmap.c                               |   6 +-
 arch/s390/mm/pgtable.c                            |   4 +-
 arch/x86/hyperv/Makefile                          |   3 +-
 arch/x86/hyperv/hv_apic.c                         | 256 +++++++++++
 arch/x86/hyperv/hv_init.c                         |  32 +-
 arch/x86/hyperv/mmu.c                             |  97 +----
 arch/x86/include/asm/hyperv-tlfs.h                |  55 ++-
 arch/x86/include/asm/kvm_emulate.h                |   6 +-
 arch/x86/include/asm/kvm_host.h                   |   7 +-
 arch/x86/include/asm/mshyperv.h                   |  44 +-
 arch/x86/include/asm/vmx.h                        |   2 +
 arch/x86/kvm/cpuid.c                              |   3 +-
 arch/x86/kvm/emulate.c                            |  76 ++--
 arch/x86/kvm/hyperv.c                             | 171 +++++++-
 arch/x86/kvm/lapic.c                              |  12 +-
 arch/x86/kvm/lapic.h                              |  14 +
 arch/x86/kvm/mmu.c                                |  78 ++--
 arch/x86/kvm/svm.c                                |  16 +-
 arch/x86/kvm/trace.h                              |  51 +++
 arch/x86/kvm/vmx.c                                | 489 +++++++++++++++++-----
 arch/x86/kvm/x86.c                                |  97 +++--
 arch/x86/kvm/x86.h                                |   4 +-
 include/kvm/arm_vgic.h                            |  17 +-
 include/linux/kvm_host.h                          |  19 +-
 include/linux/sched.h                             |   6 +
 include/linux/thread_info.h                       |  11 +
 include/uapi/linux/kvm.h                          |   5 +-
 tools/include/uapi/linux/kvm.h                    |   4 +-
 virt/kvm/Kconfig                                  |   3 +
 virt/kvm/arm/arm.c                                |  32 +-
 virt/kvm/arm/vgic/vgic-debug.c                    |  17 +-
 virt/kvm/arm/vgic/vgic-init.c                     | 100 +++--
 virt/kvm/arm/vgic/vgic-kvm-device.c               |  53 ++-
 virt/kvm/arm/vgic/vgic-mmio-v3.c                  | 112 ++++-
 virt/kvm/arm/vgic/vgic-v3.c                       |  99 ++++-
 virt/kvm/arm/vgic/vgic.h                          |  46 +-
 virt/kvm/kvm_main.c                               |  83 ++--
 77 files changed, 2191 insertions(+), 837 deletions(-)
 create mode 100644 arch/arm64/kvm/fpsimd.c
 create mode 100644 arch/x86/hyperv/hv_apic.c