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