[GIT PULL] KVM: Generic changes for 6.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Might be worth peeking at the vcpu->wants_to_run vs. preemption change, to make
sure that it aligns with QEMU's views on live migration and steal time.  Ditto
for the vCPU ID change from Mathias (though if QEMU runs afoul of that one...).

The following changes since commit c3f38fa61af77b49866b006939479069cd451173:

  Linux 6.10-rc2 (2024-06-02 15:44:56 -0700)

are available in the Git repository at:

  https://github.com/kvm-x86/linux.git tags/kvm-x86-generic-6.11

for you to fetch changes up to 25bc6af60f6121071ab4aa924a24cf6011125614:

  KVM: Add missing MODULE_DESCRIPTION() (2024-06-28 08:51:41 -0700)

----------------------------------------------------------------
KVM generic changes for 6.11

 - Enable halt poll shrinking by default, as Intel found it to be a clear win.

 - Setup empty IRQ routing when creating a VM to avoid having to synchronize
   SRCU when creating a split IRQCHIP on x86.

 - Rework the sched_in/out() paths to replace kvm_arch_sched_in() with a flag
   that arch code can use for hooking both sched_in() and sched_out().

 - Take the vCPU @id as an "unsigned long" instead of "u32" to avoid
   truncating a bogus value from userspace, e.g. to help userspace detect bugs.

 - Mark a vCPU as preempted if and only if it's scheduled out while in the
   KVM_RUN loop, e.g. to avoid marking it preempted and thus writing guest
   memory when retrieving guest state during live migration blackout.

 - A few minor cleanups

----------------------------------------------------------------
Borislav Petkov (1):
      KVM: Unexport kvm_debugfs_dir

Dan Carpenter (1):
      KVM: Fix a goof where kvm_create_vm() returns 0 instead of -ENOMEM

David Matlack (3):
      KVM: Introduce vcpu->wants_to_run
      KVM: Ensure new code that references immediate_exit gets extra scrutiny
      KVM: Mark a vCPU as preempted/ready iff it's scheduled out while running

Jeff Johnson (1):
      KVM: Add missing MODULE_DESCRIPTION()

Julian Stecklina (1):
      KVM: fix documentation rendering for KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM

Mathias Krause (4):
      KVM: Reject overly excessive IDs in KVM_CREATE_VCPU
      KVM: x86: Limit check IDs for KVM_SET_BOOT_CPU_ID
      KVM: selftests: Test max vCPU IDs corner cases
      KVM: selftests: Test vCPU boot IDs above 2^32 and MAX_VCPU_ID

Parshuram Sangle (2):
      KVM: Enable halt polling shrink parameter by default
      KVM: Update halt polling documentation to note that KVM has 4 module params

Sean Christopherson (8):
      Revert "KVM: async_pf: avoid recursive flushing of work items"
      KVM: Add a flag to track if a loaded vCPU is scheduled out
      KVM: VMX: Move PLE grow/shrink helpers above vmx_vcpu_load()
      KVM: x86: Fold kvm_arch_sched_in() into kvm_arch_vcpu_load()
      KVM: Delete the now unused kvm_arch_sched_in()
      KVM: x86: Unconditionally set l1tf_flush_l1d during vCPU load
      KVM: x86: Drop now-superflous setting of l1tf_flush_l1d in vcpu_run()
      KVM: x86: Prevent excluding the BSP on setting max_vcpu_ids

Yi Wang (3):
      KVM: Setup empty IRQ routing when creating a VM
      KVM: x86: Don't re-setup empty IRQ routing when KVM_CAP_SPLIT_IRQCHIP
      KVM: s390: Don't re-setup dummy routing when KVM_CREATE_IRQCHIP

 Documentation/virt/kvm/api.rst                     |  8 +--
 Documentation/virt/kvm/halt-polling.rst            | 12 ++--
 arch/arm64/include/asm/kvm_host.h                  |  1 -
 arch/arm64/kvm/arm.c                               |  2 +-
 arch/loongarch/include/asm/kvm_host.h              |  1 -
 arch/loongarch/kvm/vcpu.c                          |  2 +-
 arch/mips/include/asm/kvm_host.h                   |  1 -
 arch/mips/kvm/mips.c                               |  2 +-
 arch/powerpc/include/asm/kvm_host.h                |  1 -
 arch/powerpc/kvm/powerpc.c                         |  2 +-
 arch/riscv/include/asm/kvm_host.h                  |  1 -
 arch/riscv/kvm/vcpu.c                              |  2 +-
 arch/s390/include/asm/kvm_host.h                   |  1 -
 arch/s390/kvm/kvm-s390.c                           | 11 +--
 arch/x86/include/asm/kvm-x86-ops.h                 |  1 -
 arch/x86/include/asm/kvm_host.h                    |  2 -
 arch/x86/kvm/irq.h                                 |  1 -
 arch/x86/kvm/irq_comm.c                            |  7 --
 arch/x86/kvm/pmu.c                                 |  6 +-
 arch/x86/kvm/svm/svm.c                             | 11 +--
 arch/x86/kvm/vmx/main.c                            |  2 -
 arch/x86/kvm/vmx/vmx.c                             | 80 +++++++++++-----------
 arch/x86/kvm/vmx/x86_ops.h                         |  1 -
 arch/x86/kvm/x86.c                                 | 36 +++++-----
 include/linux/kvm_host.h                           | 12 ++--
 include/uapi/linux/kvm.h                           | 15 +++-
 .../selftests/kvm/x86_64/max_vcpuid_cap_test.c     | 22 +++++-
 .../testing/selftests/kvm/x86_64/set_boot_cpu_id.c | 16 +++++
 virt/kvm/async_pf.c                                | 13 +---
 virt/kvm/irqchip.c                                 | 24 +++++++
 virt/kvm/kvm_main.c                                | 46 +++++++++----
 31 files changed, 196 insertions(+), 146 deletions(-)




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux