# git rev-parse -q --verify c8c655c34e33544aec9d64b660872ab33c29b5f1^{commit} c8c655c34e33544aec9d64b660872ab33c29b5f1 already have revision, skipping fetch # git checkout -q -f -B kisskb c8c655c34e33544aec9d64b660872ab33c29b5f1 # git clean -qxdf # < git log -1 # commit c8c655c34e33544aec9d64b660872ab33c29b5f1 # Merge: d75439d64a1e b3c98052d469 # Author: Linus Torvalds # Date: Mon May 1 12:06:20 2023 -0700 # # Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm # # Pull kvm updates from Paolo Bonzini: # "s390: # # - More phys_to_virt conversions # # - Improvement of AP management for VSIE (nested virtualization) # # ARM64: # # - Numerous fixes for the pathological lock inversion issue that # plagued KVM/arm64 since... forever. # # - New framework allowing SMCCC-compliant hypercalls to be forwarded # to userspace, hopefully paving the way for some more features being # moved to VMMs rather than be implemented in the kernel. # # - Large rework of the timer code to allow a VM-wide offset to be # applied to both virtual and physical counters as well as a # per-timer, per-vcpu offset that complements the global one. This # last part allows the NV timer code to be implemented on top. # # - A small set of fixes to make sure that we don't change anything # affecting the EL1&0 translation regime just after having having # taken an exception to EL2 until we have executed a DSB. This # ensures that speculative walks started in EL1&0 have completed. # # - The usual selftest fixes and improvements. # # x86: # # - Optimize CR0.WP toggling by avoiding an MMU reload when TDP is # enabled, and by giving the guest control of CR0.WP when EPT is # enabled on VMX (VMX-only because SVM doesn't support per-bit # controls) # # - Add CR0/CR4 helpers to query single bits, and clean up related code # where KVM was interpreting kvm_read_cr4_bits()'s "unsigned long" # return as a bool # # - Move AMD_PSFD to cpufeatures.h and purge KVM's definition # # - Avoid unnecessary writes+flushes when the guest is only adding new # PTEs # # - Overhaul .sync_page() and .invlpg() to utilize .sync_page()'s # optimizations when emulating invalidations # # - Clean up the range-based flushing APIs # # - Revamp the TDP MMU's reaping of Accessed/Dirty bits to clear a # single A/D bit using a LOCK AND instead of XCHG, and skip all of # the "handle changed SPTE" overhead associated with writing the # entire entry # # - Track the number of "tail" entries in a pte_list_desc to avoid # having to walk (potentially) all descriptors during insertion and # deletion, which gets quite expensive if the guest is spamming # fork() # # - Disallow virtualizing legacy LBRs if architectural LBRs are # available, the two are mutually exclusive in hardware # # - Disallow writes to immutable feature MSRs (notably # PERF_CAPABILITIES) after KVM_RUN, similar to CPUID features # # - Overhaul the vmx_pmu_caps selftest to better validate # PERF_CAPABILITIES # # - Apply PMU filters to emulated events and add test coverage to the # pmu_event_filter selftest # # - AMD SVM: # - Add support for virtual NMIs # - Fixes for edge cases related to virtual interrupts # # - Intel AMX: # - Don't advertise XTILE_CFG in KVM_GET_SUPPORTED_CPUID if # XTILE_DATA is not being reported due to userspace not opting in # via prctl() # - Fix a bug in emulation of ENCLS in compatibility mode # - Allow emulation of NOP and PAUSE for L2 # - AMX selftests improvements # - Misc cleanups # # MIPS: # # - Constify MIPS's internal callbacks (a leftover from the hardware # enabling rework that landed in 6.3) # # Generic: # # - Drop unnecessary casts from "void *" throughout kvm_main.c # # - Tweak the layout of "struct kvm_mmu_memory_cache" to shrink the # struct size by 8 bytes on 64-bit kernels by utilizing a padding # hole # # Documentation: # # - Fix goof introduced by the conversion to rST" # # * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (211 commits) # KVM: s390: pci: fix virtual-physical confusion on module unload/load # KVM: s390: vsie: clarifications on setting the APCB # KVM: s390: interrupt: fix virtual-physical confusion for next alert GISA # KVM: arm64: Have kvm_psci_vcpu_on() use WRITE_ONCE() to update mp_state # KVM: arm64: Acquire mp_state_lock in kvm_arch_vcpu_ioctl_vcpu_init() # KVM: selftests: Test the PMU event "Instructions retired" # KVM: selftests: Copy full counter values from guest in PMU event filter test # KVM: selftests: Use error codes to signal errors in PMU event filter test # KVM: selftests: Print detailed info in PMU event filter asserts # KVM: selftests: Add helpers for PMC asserts in PMU event filter test # KVM: selftests: Add a common helper for the PMU event filter guest code # KVM: selftests: Fix spelling mistake "perrmited" -> "permitted" # KVM: arm64: vhe: Drop extra isb() on guest exit # KVM: arm64: vhe: Synchronise with page table walker on MMU update # KVM: arm64: pkvm: Document the side effects of kvm_flush_dcache_to_poc() # KVM: arm64: nvhe: Synchronise with page table walker on TLBI # KVM: arm64: Handle 32bit CNTPCTSS traps # KVM: arm64: nvhe: Synchronise with page table walker on vcpu run # KVM: arm64: vgic: Don't acquire its_lock before config_lock # KVM: selftests: Add test to verify KVM's supported XCR0 # ... # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 c8c655c34e33544aec9d64b660872ab33c29b5f1 # < make -s -j 160 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig # < make -s -j 160 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 160 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 160 ARCH=x86 O=/kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/linus_x86-allmodconfig_x86_64-gcc8 # Build took: 0:19:21.016703