]> Git Repo - linux.git/commitdiff
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
authorLinus Torvalds <[email protected]>
Tue, 7 Sep 2021 20:40:51 +0000 (13:40 -0700)
committerLinus Torvalds <[email protected]>
Tue, 7 Sep 2021 20:40:51 +0000 (13:40 -0700)
Pull KVM updates from Paolo Bonzini:
 "ARM:
   - Page ownership tracking between host EL1 and EL2
   - Rely on userspace page tables to create large stage-2 mappings
   - Fix incompatibility between pKVM and kmemleak
   - Fix the PMU reset state, and improve the performance of the virtual
     PMU
   - Move over to the generic KVM entry code
   - Address PSCI reset issues w.r.t. save/restore
   - Preliminary rework for the upcoming pKVM fixed feature
   - A bunch of MM cleanups
   - a vGIC fix for timer spurious interrupts
   - Various cleanups

  s390:
   - enable interpretation of specification exceptions
   - fix a vcpu_idx vs vcpu_id mixup

  x86:
   - fast (lockless) page fault support for the new MMU
   - new MMU now the default
   - increased maximum allowed VCPU count
   - allow inhibit IRQs on KVM_RUN while debugging guests
   - let Hyper-V-enabled guests run with virtualized LAPIC as long as
     they do not enable the Hyper-V "AutoEOI" feature
   - fixes and optimizations for the toggling of AMD AVIC (virtualized
     LAPIC)
   - tuning for the case when two-dimensional paging (EPT/NPT) is
     disabled
   - bugfixes and cleanups, especially with respect to vCPU reset and
     choosing a paging mode based on CR0/CR4/EFER
   - support for 5-level page table on AMD processors

  Generic:
   - MMU notifier invalidation callbacks do not take mmu_lock unless
     necessary
   - improved caching of LRU kvm_memory_slot
   - support for histogram statistics
   - add statistics for halt polling and remote TLB flush requests"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (210 commits)
  KVM: Drop unused kvm_dirty_gfn_invalid()
  KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted
  KVM: MMU: mark role_regs and role accessors as maybe unused
  KVM: MIPS: Remove a "set but not used" variable
  x86/kvm: Don't enable IRQ when IRQ enabled in kvm_wait
  KVM: stats: Add VM stat for remote tlb flush requests
  KVM: Remove unnecessary export of kvm_{inc,dec}_notifier_count()
  KVM: x86/mmu: Move lpage_disallowed_link further "down" in kvm_mmu_page
  KVM: x86/mmu: Relocate kvm_mmu_page.tdp_mmu_page for better cache locality
  Revert "KVM: x86: mmu: Add guest physical address check in translate_gpa()"
  KVM: x86/mmu: Remove unused field mmio_cached in struct kvm_mmu_page
  kvm: x86: Increase KVM_SOFT_MAX_VCPUS to 710
  kvm: x86: Increase MAX_VCPUS to 1024
  kvm: x86: Set KVM_MAX_VCPU_ID to 4*KVM_MAX_VCPUS
  KVM: VMX: avoid running vmx_handle_exit_irqoff in case of emulation
  KVM: x86/mmu: Don't freak out if pml5_root is NULL on 4-level host
  KVM: s390: index kvm->arch.idle_mask by vcpu_idx
  KVM: s390: Enable specification exception interpretation
  KVM: arm64: Trim guest debug exception handling
  KVM: SVM: Add 5-level page table support for SVM
  ...

13 files changed:
1  2 
Documentation/virt/kvm/api.rst
arch/arm64/include/asm/cpufeature.h
arch/arm64/include/asm/sysreg.h
arch/arm64/kernel/cpufeature.c
arch/powerpc/include/asm/kvm_host.h
arch/powerpc/kvm/book3s_64_vio_hv.c
arch/powerpc/kvm/book3s_hv.c
arch/s390/include/asm/kvm_host.h
arch/s390/kvm/kvm-s390.c
arch/x86/kvm/hyperv.c
arch/x86/kvm/svm/nested.c
arch/x86/kvm/svm/svm.c
arch/x86/kvm/vmx/nested.c

index c6212c2d5fe35d976a2602acbb1d5cb655fceb30,4ea1bb28297b4ec5584bb74cf5ad62aff10e7523..a6729c8cf06342b42acd96a50d36361d10f86ec2
@@@ -5235,9 -5240,8 +5241,9 @@@ by this descriptor. Its endianness is C
  The following flags are supported:
  
  Bits 0-3 of ``flags`` encode the type:
 +
    * ``KVM_STATS_TYPE_CUMULATIVE``
-     The statistics data is cumulative. The value of data can only be increased.
+     The statistics reports a cumulative count. The value of data can only be increased.
      Most of the counters used in KVM are of this type.
      The corresponding ``size`` field for this type is always 1.
      All cumulative statistics data are read/write.
      All instant statistics are read only.
      The corresponding ``size`` field for this type is always 1.
    * ``KVM_STATS_TYPE_PEAK``
-     The statistics data is peak. The value of data can only be increased, and
-     represents a peak value for a measurement, for example the maximum number
+     The statistics data reports a peak value, for example the maximum number
      of items in a hash table bucket, the longest time waited and so on.
+     The value of data can only be increased.
      The corresponding ``size`` field for this type is always 1.
+   * ``KVM_STATS_TYPE_LINEAR_HIST``
+     The statistic is reported as a linear histogram. The number of
+     buckets is specified by the ``size`` field. The size of buckets is specified
+     by the ``hist_param`` field. The range of the Nth bucket (1 <= N < ``size``)
+     is [``hist_param``*(N-1), ``hist_param``*N), while the range of the last
+     bucket is [``hist_param``*(``size``-1), +INF). (+INF means positive infinity
+     value.) The bucket value indicates how many samples fell in the bucket's range.
+   * ``KVM_STATS_TYPE_LOG_HIST``
+     The statistic is reported as a logarithmic histogram. The number of
+     buckets is specified by the ``size`` field. The range of the first bucket is
+     [0, 1), while the range of the last bucket is [pow(2, ``size``-2), +INF).
+     Otherwise, The Nth bucket (1 < N < ``size``) covers
+     [pow(2, N-2), pow(2, N-1)). The bucket value indicates how many samples fell
+     in the bucket's range.
  
  Bits 4-7 of ``flags`` encode the unit:
 +
    * ``KVM_STATS_UNIT_NONE``
      There is no unit for the value of statistics data. This usually means that
      the value is a simple counter of an event.
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
This page took 0.17674 seconds and 4 git commands to generate.