Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 21 Feb 2021 21:31:43 +0000 (13:31 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 21 Feb 2021 21:31:43 +0000 (13:31 -0800)
Pull KVM updates from Paolo Bonzini:
 "x86:

   - Support for userspace to emulate Xen hypercalls

   - Raise the maximum number of user memslots

   - Scalability improvements for the new MMU.

     Instead of the complex "fast page fault" logic that is used in
     mmu.c, tdp_mmu.c uses an rwlock so that page faults are concurrent,
     but the code that can run against page faults is limited. Right now
     only page faults take the lock for reading; in the future this will
     be extended to some cases of page table destruction. I hope to
     switch the default MMU around 5.12-rc3 (some testing was delayed
     due to Chinese New Year).

   - Cleanups for MAXPHYADDR checks

   - Use static calls for vendor-specific callbacks

   - On AMD, use VMLOAD/VMSAVE to save and restore host state

   - Stop using deprecated jump label APIs

   - Workaround for AMD erratum that made nested virtualization
     unreliable

   - Support for LBR emulation in the guest

   - Support for communicating bus lock vmexits to userspace

   - Add support for SEV attestation command

   - Miscellaneous cleanups

  PPC:

   - Support for second data watchpoint on POWER10

   - Remove some complex workarounds for buggy early versions of POWER9

   - Guest entry/exit fixes

  ARM64:

   - Make the nVHE EL2 object relocatable

   - Cleanups for concurrent translation faults hitting the same page

   - Support for the standard TRNG hypervisor call

   - A bunch of small PMU/Debug fixes

   - Simplification of the early init hypercall handling

  Non-KVM changes (with acks):

   - Detection of contended rwlocks (implemented only for qrwlocks,
     because KVM only needs it for x86)

   - Allow __DISABLE_EXPORTS from assembly code

   - Provide a saner follow_pfn replacements for modules"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (192 commits)
  KVM: x86/xen: Explicitly pad struct compat_vcpu_info to 64 bytes
  KVM: selftests: Don't bother mapping GVA for Xen shinfo test
  KVM: selftests: Fix hex vs. decimal snafu in Xen test
  KVM: selftests: Fix size of memslots created by Xen tests
  KVM: selftests: Ignore recently added Xen tests' build output
  KVM: selftests: Add missing header file needed by xAPIC IPI tests
  KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c
  KVM: SVM: Make symbol 'svm_gp_erratum_intercept' static
  locking/arch: Move qrwlock.h include after qspinlock.h
  KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests
  KVM: PPC: Book3S HV: Ensure radix guest has no SLB entries
  KVM: PPC: Don't always report hash MMU capability for P9 < DD2.2
  KVM: PPC: Book3S HV: Save and restore FSCR in the P9 path
  KVM: PPC: remove unneeded semicolon
  KVM: PPC: Book3S HV: Use POWER9 SLBIA IH=6 variant to clear SLB
  KVM: PPC: Book3S HV: No need to clear radix host SLB before loading HPT guest
  KVM: PPC: Book3S HV: Fix radix guest SLB side channel
  KVM: PPC: Book3S HV: Remove support for running HPT guest on RPT host without mixed mode support
  KVM: PPC: Book3S HV: Introduce new capability for 2nd DAWR
  KVM: PPC: Book3S HV: Add infrastructure to support 2nd DAWR
  ...

12 files changed:
1  2 
arch/arm64/include/asm/sysreg.h
arch/arm64/kernel/vmlinux.lds.S
arch/arm64/kvm/arm.c
arch/arm64/kvm/hyp/nvhe/hyp-init.S
arch/x86/include/asm/cpufeatures.h
arch/x86/kernel/apic/apic.c
arch/x86/kernel/reboot.c
arch/x86/kvm/x86.c
include/linux/mm.h
include/linux/sched.h
kernel/sched/core.c
mm/memory.c

  #define ID_AA64DFR0_PMUVER_8_5                0x6
  #define ID_AA64DFR0_PMUVER_IMP_DEF    0xf
  
 +#define ID_AA64DFR0_PMSVER_8_2                0x1
 +#define ID_AA64DFR0_PMSVER_8_3                0x2
 +
  #define ID_DFR0_PERFMON_SHIFT         24
  
+ #define ID_DFR0_PERFMON_8_0           0x3
  #define ID_DFR0_PERFMON_8_1           0x4
+ #define ID_DFR0_PERFMON_8_4           0x5
+ #define ID_DFR0_PERFMON_8_5           0x6
  
  #define ID_ISAR4_SWP_FRAC_SHIFT               28
  #define ID_ISAR4_PSR_M_SHIFT          24
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1780,9 -1783,8 +1783,9 @@@ int kvm_emulate_wrmsr(struct kvm_vcpu *
  }
  EXPORT_SYMBOL_GPL(kvm_emulate_wrmsr);
  
- bool kvm_vcpu_exit_request(struct kvm_vcpu *vcpu)
static inline bool kvm_vcpu_exit_request(struct kvm_vcpu *vcpu)
  {
 +      xfer_to_guest_mode_prepare();
        return vcpu->mode == EXITING_GUEST_MODE || kvm_request_pending(vcpu) ||
                xfer_to_guest_mode_work_pending();
  }
Simple merge
Simple merge
Simple merge
diff --cc mm/memory.c
Simple merge