mbox series

[GIT,PULL] KVM: x86: Misc changes for 6.11

Message ID 20240712235701.1458888-4-seanjc@google.com (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] KVM: x86: Misc changes for 6.11 | expand

Pull-request

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

Message

Sean Christopherson July 12, 2024, 11:56 p.m. UTC
The most notable change is the addition of the capability to allow changing
KVM's emulated APIC bus frequency for TDX.  Most everything else is cleanups.

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-misc-6.11

for you to fetch changes up to 82222ee7e84cb03158935e053c4c4960ac1debbd:

  KVM: selftests: Add test for configure of x86 APIC bus frequency (2024-06-28 15:21:43 -0700)

----------------------------------------------------------------
KVM x86 misc changes for 6.11

 - Add a global struct to consolidate tracking of host values, e.g. EFER, and
   move "shadow_phys_bits" into the structure as "maxphyaddr".

 - Add KVM_CAP_X86_APIC_BUS_CYCLES_NS to allow configuring the effective APIC
   bus frequency, because TDX.

 - Print the name of the APICv/AVIC inhibits in the relevant tracepoint.

 - Clean up KVM's handling of vendor specific emulation to consistently act on
   "compatible with Intel/AMD", versus checking for a specific vendor.

 - Misc cleanups

----------------------------------------------------------------
Alejandro Jimenez (2):
      KVM: x86: Print names of apicv inhibit reasons in traces
      KVM: x86: Keep consistent naming for APICv/AVIC inhibit reasons

Binbin Wu (1):
      KVM: VMX: Remove unused declaration of vmx_request_immediate_exit()

Carlos López (1):
      KVM: x86: Improve documentation for KVM_CAP_X86_BUS_LOCK_EXIT

Hou Wenlong (1):
      KVM: x86: Drop unused check_apicv_inhibit_reasons() callback definition

Isaku Yamahata (4):
      KVM: x86: hyper-v: Calculate APIC bus frequency for Hyper-V
      KVM: x86: Make nanoseconds per APIC bus cycle a VM variable
      KVM: x86: Add a capability to configure bus frequency for APIC timer
      KVM: selftests: Add test for configure of x86 APIC bus frequency

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

Peng Hao (1):
      KVM: X86: Remove unnecessary GFP_KERNEL_ACCOUNT for temporary variables

Reinette Chatre (1):
      KVM: selftests: Add guest udelay() utility for x86

Sean Christopherson (12):
      KVM: x86: Add a struct to consolidate host values, e.g. EFER, XCR0, etc...
      KVM: SVM: Use KVM's snapshot of the host's XCR0 for SEV-ES host state
      KVM: x86/mmu: Snapshot shadow_phys_bits when kvm.ko is loaded
      KVM: x86: Move shadow_phys_bits into "kvm_host", as "maxphyaddr"
      KVM: x86/pmu: Squash period for checkpointed events based on host HLE/RTM
      KVM: x86: Apply Intel's TSC_AUX reserved-bit behavior to Intel compat vCPUs
      KVM: x86: Inhibit code #DBs in MOV-SS shadow for all Intel compat vCPUs
      KVM: x86: Use "is Intel compatible" helper to emulate SYSCALL in !64-bit
      KVM: SVM: Emulate SYSENTER RIP/RSP behavior for all Intel compat vCPUs
      KVM: x86: Allow SYSENTER in Compatibility Mode for all Intel compat vCPUs
      KVM: x86: Open code vendor_intel() in string_registers_quirk()
      KVM: x86: Bury guest_cpuid_is_amd_or_hygon() in cpuid.c

Thomas Prescher (1):
      KVM: x86: Add KVM_RUN_X86_GUEST_MODE kvm_run flag

 Documentation/virt/kvm/api.rst                     |  78 ++++++---
 arch/x86/include/asm/kvm_host.h                    |  24 ++-
 arch/x86/include/uapi/asm/kvm.h                    |   1 +
 arch/x86/kvm/cpuid.c                               |  12 ++
 arch/x86/kvm/cpuid.h                               |  18 --
 arch/x86/kvm/emulate.c                             |  71 +++-----
 arch/x86/kvm/hyperv.c                              |   3 +-
 arch/x86/kvm/kvm_emulate.h                         |   1 +
 arch/x86/kvm/lapic.c                               |   6 +-
 arch/x86/kvm/lapic.h                               |   3 +-
 arch/x86/kvm/mmu.h                                 |  27 +--
 arch/x86/kvm/mmu/mmu.c                             |   2 +-
 arch/x86/kvm/mmu/spte.c                            |  26 ++-
 arch/x86/kvm/pmu.c                                 |   2 +-
 arch/x86/kvm/svm/sev.c                             |   4 +-
 arch/x86/kvm/svm/svm.c                             |  15 +-
 arch/x86/kvm/svm/svm.h                             |   2 +-
 arch/x86/kvm/trace.h                               |   9 +-
 arch/x86/kvm/vmx/main.c                            |   2 +-
 arch/x86/kvm/vmx/nested.c                          |   8 +-
 arch/x86/kvm/vmx/vmx.c                             |  29 ++-
 arch/x86/kvm/vmx/vmx.h                             |   2 +-
 arch/x86/kvm/vmx/x86_ops.h                         |   2 -
 arch/x86/kvm/x86.c                                 | 112 +++++++-----
 arch/x86/kvm/x86.h                                 |  19 +-
 include/uapi/linux/kvm.h                           |   2 +
 tools/testing/selftests/kvm/Makefile               |   1 +
 tools/testing/selftests/kvm/include/x86_64/apic.h  |   8 +
 .../selftests/kvm/include/x86_64/processor.h       |  18 ++
 tools/testing/selftests/kvm/lib/x86_64/processor.c |  11 ++
 .../selftests/kvm/x86_64/apic_bus_clock_test.c     | 194 +++++++++++++++++++++
 31 files changed, 503 insertions(+), 209 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/x86_64/apic_bus_clock_test.c