[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250730181703.113459-1-pbonzini@redhat.com>
Date: Wed, 30 Jul 2025 14:17:02 -0400
From: Paolo Bonzini <pbonzini@...hat.com>
To: torvalds@...ux-foundation.org
Cc: linux-kernel@...r.kernel.org,
kvm@...r.kernel.org
Subject: [GIT PULL] KVM changes for Linux 6.17 merge window
Linus,
The following changes since commit 038d61fd642278bab63ee8ef722c50d10ab01e8f:
Linux 6.16 (2025-07-27 14:26:38 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus
for you to fetch changes up to 196d9e72c4b0bd68b74a4ec7f52d248f37d0f030:
Merge tag 'kvm-s390-next-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD (2025-07-30 13:56:09 -0400)
The GICv5 branch is shared between the irqchip and KVM pull requests;
so far you have not pulled it.
There is a conflict with "entry: Split generic entry into generic
exception and syscall entry" from the tip tree. The new function
from
git show ee4a2e08c101 -- include/linux/entry-common.h
must be moved to include/linux/irq-entry-common.h, which is as easy
as piping that into "patch include/linux/irq-entry-common.h".
Thanks,
Paolo
----------------------------------------------------------------
ARM:
- Host driver for GICv5, the next generation interrupt controller for
arm64, including support for interrupt routing, MSIs, interrupt
translation and wired interrupts.
- Use FEAT_GCIE_LEGACY on GICv5 systems to virtualize GICv3 VMs on
GICv5 hardware, leveraging the legacy VGIC interface.
- Userspace control of the 'nASSGIcap' GICv3 feature, allowing
userspace to disable support for SGIs w/o an active state on hardware
that previously advertised it unconditionally.
- Map supporting endpoints with cacheable memory attributes on systems
with FEAT_S2FWB and DIC where KVM no longer needs to perform cache
maintenance on the address range.
- Nested support for FEAT_RAS and FEAT_DoubleFault2, allowing the guest
hypervisor to inject external aborts into an L2 VM and take traps of
masked external aborts to the hypervisor.
- Convert more system register sanitization to the config-driven
implementation.
- Fixes to the visibility of EL2 registers, namely making VGICv3 system
registers accessible through the VGIC device instead of the ONE_REG
vCPU ioctls.
- Various cleanups and minor fixes.
LoongArch:
- Add stat information for in-kernel irqchip
- Add tracepoints for CPUCFG and CSR emulation exits
- Enhance in-kernel irqchip emulation
- Various cleanups.
RISC-V:
- Enable ring-based dirty memory tracking
- Improve perf kvm stat to report interrupt events
- Delegate illegal instruction trap to VS-mode
- MMU improvements related to upcoming nested virtualization
s390:
- Fixes
x86:
- Add CONFIG_KVM_IOAPIC for x86 to allow disabling support for I/O APIC,
PIC, and PIT emulation at compile time.
- Share device posted IRQ code between SVM and VMX and
harden it against bugs and runtime errors.
- Use vcpu_idx, not vcpu_id, for GA log tag/metadata, to make lookups O(1)
instead of O(n).
- For MMIO stale data mitigation, track whether or not a vCPU has access to
(host) MMIO based on whether the page tables have MMIO pfns mapped; using
VFIO is prone to false negatives
- Rework the MSR interception code so that the SVM and VMX APIs are more or
less identical.
- Recalculate all MSR intercepts from scratch on MSR filter changes,
instead of maintaining shadow bitmaps.
- Advertise support for LKGS (Load Kernel GS base), a new instruction
that's loosely related to FRED, but is supported and enumerated
independently.
- Fix a user-triggerable WARN that syzkaller found by setting the vCPU
in INIT_RECEIVED state (aka wait-for-SIPI), and then putting the vCPU
into VMX Root Mode (post-VMXON). Trying to detect every possible path
leading to architecturally forbidden states is hard and even risks
breaking userspace (if it goes from valid to valid state but passes
through invalid states), so just wait until KVM_RUN to detect that
the vCPU state isn't allowed.
- Add KVM_X86_DISABLE_EXITS_APERFMPERF to allow disabling interception of
APERF/MPERF reads, so that a "properly" configured VM can access
APERF/MPERF. This has many caveats (APERF/MPERF cannot be zeroed
on vCPU creation or saved/restored on suspend and resume, or preserved
over thread migration let alone VM migration) but can be useful whenever
you're interested in letting Linux guests see the effective physical CPU
frequency in /proc/cpuinfo.
- Reject KVM_SET_TSC_KHZ for vm file descriptors if vCPUs have been
created, as there's no known use case for changing the default
frequency for other VM types and it goes counter to the very reason
why the ioctl was added to the vm file descriptor. And also, there
would be no way to make it work for confidential VMs with a "secure"
TSC, so kill two birds with one stone.
- Dynamically allocation the shadow MMU's hashed page list, and defer
allocating the hashed list until it's actually needed (the TDP MMU
doesn't use the list).
- Extract many of KVM's helpers for accessing architectural local APIC
state to common x86 so that they can be shared by guest-side code for
Secure AVIC.
- Various cleanups and fixes.
x86 (Intel):
- Preserve the host's DEBUGCTL.FREEZE_IN_SMM when running the guest.
Failure to honor FREEZE_IN_SMM can leak host state into guests.
- Explicitly check vmcs12.GUEST_DEBUGCTL on nested VM-Enter to prevent
L1 from running L2 with features that KVM doesn't support, e.g. BTF.
x86 (AMD):
- WARN and reject loading kvm-amd.ko instead of panicking the kernel if the
nested SVM MSRPM offsets tracker can't handle an MSR (which is pretty
much a static condition and therefore should never happen, but still).
- Fix a variety of flaws and bugs in the AVIC device posted IRQ code.
- Inhibit AVIC if a vCPU's ID is too big (relative to what hardware
supports) instead of rejecting vCPU creation.
- Extend enable_ipiv module param support to SVM, by simply leaving
IsRunning clear in the vCPU's physical ID table entry.
- Disable IPI virtualization, via enable_ipiv, if the CPU is affected by
erratum #1235, to allow (safely) enabling AVIC on such CPUs.
- Request GA Log interrupts if and only if the target vCPU is blocking,
i.e. only if KVM needs a notification in order to wake the vCPU.
- Intercept SPEC_CTRL on AMD if the MSR shouldn't exist according to the
vCPU's CPUID model.
- Accept any SNP policy that is accepted by the firmware with respect to
SMT and single-socket restrictions. An incompatible policy doesn't put
the kernel at risk in any way, so there's no reason for KVM to care.
- Drop a superfluous WBINVD (on all CPUs!) when destroying a VM and
use WBNOINVD instead of WBINVD when possible for SEV cache maintenance.
- When reclaiming memory from an SEV guest, only do cache flushes on CPUs
that have ever run a vCPU for the guest, i.e. don't flush the caches for
CPUs that can't possibly have cache lines with dirty, encrypted data.
Generic:
- Rework irqbypass to track/match producers and consumers via an xarray
instead of a linked list. Using a linked list leads to O(n^2) insertion
times, which is hugely problematic for use cases that create large
numbers of VMs. Such use cases typically don't actually use irqbypass,
but eliminating the pointless registration is a future problem to
solve as it likely requires new uAPI.
- Track irqbypass's "token" as "struct eventfd_ctx *" instead of a "void *",
to avoid making a simple concept unnecessarily difficult to understand.
- Decouple device posted IRQs from VFIO device assignment, as binding a VM
to a VFIO group is not a requirement for enabling device posted IRQs.
- Clean up and document/comment the irqfd assignment code.
- Disallow binding multiple irqfds to an eventfd with a priority waiter,
i.e. ensure an eventfd is bound to at most one irqfd through the entire
host, and add a selftest to verify eventfd:irqfd bindings are globally
unique.
- Add a tracepoint for KVM_SET_MEMORY_ATTRIBUTES to help debug issues
related to private <=> shared memory conversions.
- Drop guest_memfd's .getattr() implementation as the VFS layer will call
generic_fillattr() if inode_operations.getattr is NULL.
- Fix issues with dirty ring harvesting where KVM doesn't bound the
processing of entries in any way, which allows userspace to keep KVM
in a tight loop indefinitely.
- Kill off kvm_arch_{start,end}_assignment() and x86's associated tracking,
now that KVM no longer uses assigned_device_count as a heuristic for
either irqbypass usage or MDS mitigation.
Selftests:
- Fix a comment typo.
- Verify KVM is loaded when getting any KVM module param so that attempting
to run a selftest without kvm.ko loaded results in a SKIP message about
KVM not being loaded/enabled (versus some random parameter not existing).
- Skip tests that hit EACCES when attempting to access a file, and rpint
a "Root required?" help message. In most cases, the test just needs to
be run with elevated permissions.
----------------------------------------------------------------
Ankit Agrawal (5):
KVM: arm64: Rename the device variable to s2_force_noncacheable
KVM: arm64: Assume non-PFNMAP/MIXEDMAP VMAs can be mapped cacheable
KVM: arm64: Block cacheable PFNMAP mapping
KVM: arm64: Allow cacheable stage 2 mapping using VMA flags
KVM: arm64: Expose new KVM cap for cacheable PFNMAP
Anup Patel (12):
RISC-V: KVM: Check kvm_riscv_vcpu_alloc_vector_context() return value
RISC-V: KVM: Drop the return value of kvm_riscv_vcpu_aia_init()
RISC-V: KVM: Rename and move kvm_riscv_local_tlb_sanitize()
RISC-V: KVM: Replace KVM_REQ_HFENCE_GVMA_VMID_ALL with KVM_REQ_TLB_FLUSH
RISC-V: KVM: Don't flush TLB when PTE is unchanged
RISC-V: KVM: Implement kvm_arch_flush_remote_tlbs_range()
RISC-V: KVM: Use ncsr_xyz() in kvm_riscv_vcpu_trap_redirect()
RISC-V: KVM: Factor-out MMU related declarations into separate headers
RISC-V: KVM: Introduce struct kvm_gstage_mapping
RISC-V: KVM: Add vmid field to struct kvm_riscv_hfence
RISC-V: KVM: Factor-out g-stage page table management
RISC-V: KVM: Pass VMID as parameter to kvm_riscv_hfence_xyz() APIs
Bibo Mao (8):
LoongArch: KVM: Remove unnecessary local variable
LoongArch: KVM: Remove unused parameter len
LoongArch: KVM: Remove never called default case statement
LoongArch: KVM: Use standard bitops API with eiointc
LoongArch: KVM: Use generic function loongarch_eiointc_read()
LoongArch: KVM: Use generic function loongarch_eiointc_write()
LoongArch: KVM: Replace eiointc_enable_irq() with eiointc_update_irq()
LoongArch: KVM: Add stat information with kernel irqchip
Chao Gao (2):
KVM: x86: Deduplicate MSR interception enabling and disabling
KVM: SVM: Simplify MSR interception logic for IA32_XSS MSR
Clément Léger (2):
RISC-V: KVM: add SBI extension init()/deinit() functions
RISC-V: KVM: add SBI extension reset callback
David Woodhouse (1):
KVM: arm64: vgic-its: Return -ENXIO to invalid KVM_DEV_ARM_VGIC_GRP_CTRL attrs
Jim Mattson (3):
KVM: x86: Replace growing set of *_in_guest bools with a u64
KVM: x86: Provide a capability to disable APERF/MPERF read intercepts
KVM: selftests: Test behavior of KVM_X86_DISABLE_EXITS_APERFMPERF
Kai Huang (1):
KVM: x86: Reject KVM_SET_TSC_KHZ VM ioctl when vCPUs have been created
Kevin Loughlin (1):
KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency
Kuninori Morimoto (2):
arm64: kvm: sys_regs: use string choices helper
arm64: kvm: trace_handle_exit: use string choices helper
Liam Merwick (2):
KVM: Add trace_kvm_vm_set_mem_attributes()
KVM: fix typo in kvm_vm_set_mem_attributes() comment
Lorenzo Pieralisi (30):
dt-bindings: interrupt-controller: Add Arm GICv5
arm64/sysreg: Add GCIE field to ID_AA64PFR2_EL1
arm64/sysreg: Add ICC_PPI_PRIORITY<n>_EL1
arm64/sysreg: Add ICC_ICSR_EL1
arm64/sysreg: Add ICC_PPI_HMR<n>_EL1
arm64/sysreg: Add ICC_PPI_ENABLER<n>_EL1
arm64/sysreg: Add ICC_PPI_{C/S}ACTIVER<n>_EL1
arm64/sysreg: Add ICC_PPI_{C/S}PENDR<n>_EL1
arm64/sysreg: Add ICC_CR0_EL1
arm64/sysreg: Add ICC_PCR_EL1
arm64/sysreg: Add ICC_IDR0_EL1
arm64/sysreg: Add ICH_HFGRTR_EL2
arm64/sysreg: Add ICH_HFGWTR_EL2
arm64/sysreg: Add ICH_HFGITR_EL2
arm64: Disable GICv5 read/write/instruction traps
arm64: cpucaps: Rename GICv3 CPU interface capability
arm64: cpucaps: Add GICv5 CPU interface (GCIE) capability
arm64: Add support for GICv5 GSB barriers
irqchip/gic-v5: Add GICv5 PPI support
irqchip/gic-v5: Add GICv5 IRS/SPI support
irqchip/gic-v5: Add GICv5 LPI/IPI support
irqchip/gic-v5: Enable GICv5 SMP booting
of/irq: Add of_msi_xlate() helper function
PCI/MSI: Add pci_msi_map_rid_ctlr_node() helper function
irqchip/gic-v3: Rename GICv3 ITS MSI parent
irqchip/msi-lib: Add IRQ_DOMAIN_FLAG_FWNODE_PARENT handling
irqchip/gic-v5: Add GICv5 ITS support
irqchip/gic-v5: Add GICv5 IWB support
docs: arm64: gic-v5: Document booting requirements for GICv5
arm64: Kconfig: Enable GICv5
Marc Zyngier (28):
arm64: smp: Support non-SGIs for IPIs
KVM: arm64: Add helper to identify a nested context
arm64: smp: Fix pNMI setup after GICv5 rework
KVM: arm64: Make RVBAR_EL2 accesses UNDEF
KVM: arm64: Don't advertise ICH_*_EL2 registers through GET_ONE_REG
KVM: arm64: Define constant value for ICC_SRE_EL2
KVM: arm64: Define helper for ICH_VTR_EL2
KVM: arm64: Let GICv3 save/restore honor visibility attribute
KVM: arm64: Expose GICv3 EL2 registers via KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS
KVM: arm64: Condition FGT registers on feature availability
KVM: arm64: Advertise FGT2 registers to userspace
KVM: arm64: selftests: get-reg-list: Simplify feature dependency
KVM: arm64: selftests: get-reg-list: Add base EL2 registers
KVM: arm64: Document registers exposed via KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS
arm64: sysreg: Add THE/ASID2 controls to TCR2_ELx
KVM: arm64: Convert TCR2_EL2 to config-driven sanitisation
KVM: arm64: Convert SCTLR_EL1 to config-driven sanitisation
KVM: arm64: Convert MDCR_EL2 to config-driven sanitisation
KVM: arm64: Tighten the definition of FEAT_PMUv3p9
KVM: arm64: Check for SYSREGS_ON_CPU before accessing the CPU state
KVM: arm64: Filter out HCR_EL2 bits when running in hypervisor context
KVM: arm64: Make RAS registers UNDEF when RAS isn't advertised
KVM: arm64: Remove the wi->{e0,}poe vs wr->{p,u}ov confusion
KVM: arm64: Follow specification when implementing WXN
KVM: arm64: vgic-v3: Fix ordering of ICH_HCR_EL2
KVM: arm64: Clarify the check for reset callback in check_sysreg_table()
KVM: arm64: Enforce the sorting of the GICv3 system register table
KVM: arm64: selftest: vgic-v3: Add basic GICv3 sysreg userspace access test
Mark Brown (1):
KVM: selftests: Add CONFIG_EVENTFD for irqfd selftest
Mark Rutland (2):
entry: Add arch_in_rcu_eqs()
KVM: s390: Rework guest entry logic
Maxim Levitsky (5):
KVM: nVMX: Check vmcs12->guest_ia32_debugctl on nested VM-Enter
KVM: VMX: Wrap all accesses to IA32_DEBUGCTL with getter/setter APIs
KVM: VMX: Preserve host's DEBUGCTLMSR_FREEZE_IN_SMM while running the guest
KVM: SVM: Add enable_ipiv param, never set IsRunning if disabled
KVM: SVM: Disable (x2)AVIC IPI virtualization if CPU has erratum #1235
Neeraj Upadhyay (13):
KVM: x86: Open code setting/clearing of bits in the ISR
KVM: x86: Remove redundant parentheses around 'bitmap'
KVM: x86: Rename VEC_POS/REG_POS macro usages
KVM: x86: Change lapic regs base address to void pointer
KVM: x86: Rename find_highest_vector()
KVM: x86: Rename lapic get/set_reg() helpers
KVM: x86: Rename lapic get/set_reg64() helpers
KVM: x86: Rename lapic set/clear vector helpers
x86/apic: KVM: Move apic_find_highest_vector() to a common header
x86/apic: KVM: Move lapic get/set helpers to common code
x86/apic: KVM: Move lapic set/clear_vector() helpers to common code
x86/apic: KVM: Move apic_test)vector() to common code
x86/apic: Rename 'reg_off' to 'reg'
Oliver Upton (43):
arm64: Detect FEAT_SCTLR2
arm64: Detect FEAT_DoubleFault2
KVM: arm64: Treat vCPU with pending SError as runnable
KVM: arm64: nv: Respect exception routing rules for SEAs
KVM: arm64: nv: Honor SError exception routing / masking
KVM: arm64: nv: Add FEAT_RAS vSError sys regs to table
KVM: arm64: nv: Use guest hypervisor's vSError state
KVM: arm64: nv: Advertise support for FEAT_RAS
KVM: arm64: nv: Describe trap behavior of SCTLR2_EL1
KVM: arm64: Wire up SCTLR2_ELx sysreg descriptors
KVM: arm64: Context switch SCTLR2_ELx when advertised to the guest
KVM: arm64: Enable SCTLR2 when advertised to the guest
KVM: arm64: Describe SCTLR2_ELx RESx masks
KVM: arm64: Factor out helper for selecting exception target EL
KVM: arm64: nv: Ensure Address size faults affect correct ESR
KVM: arm64: Route SEAs to the SError vector when EASE is set
KVM: arm64: nv: Take "masked" aborts to EL2 when HCRX_EL2.TMEA is set
KVM: arm64: nv: Honor SError routing effects of SCTLR2_ELx.NMEA
KVM: arm64: nv: Enable vSErrors when HCRX_EL2.TMEA is set
KVM: arm64: Advertise support for FEAT_SCTLR2
KVM: arm64: Advertise support for FEAT_DoubleFault2
KVM: arm64: Don't retire MMIO instruction w/ pending (emulated) SError
KVM: arm64: selftests: Add basic SError injection test
KVM: arm64: selftests: Test SEAs are taken to SError vector when EASE=1
KVM: arm64: selftests: Add SCTLR2_EL1 to get-reg-list
KVM: arm64: selftests: Catch up set_id_regs with the kernel
KVM: arm64: Populate ESR_ELx.EC for emulated SError injection
KVM: arm64: selftests: Test ESR propagation for vSError injection
KVM: arm64: Commit exceptions from KVM_SET_VCPU_EVENTS immediately
KVM: arm64: Disambiguate support for vSGIs v. vLPIs
KVM: arm64: vgic-v3: Consolidate MAINT_IRQ handling
KVM: arm64: vgic-v3: Allow access to GICD_IIDR prior to initialization
Documentation: KVM: arm64: Describe VGICv3 registers writable pre-init
Merge branch 'kvm-arm64/cacheable-pfnmap' into kvmarm/next
Merge branch 'kvm-arm64/doublefault2' into kvmarm/next
Merge tag 'irqchip-gic-v5-host' into kvmarm/next
Merge branch 'kvm-arm64/gcie-legacy' into kvmarm/next
Merge branch 'kvm-arm64/misc' into kvmarm/next
Merge branch 'kvm-arm64/config-masks' into kvmarm/next
Merge branch 'kvm-arm64/el2-reg-visibility' into kvmarm/next
Merge branch 'kvm-arm64/vgic-v4-ctl' into kvmarm/next
KVM: arm64: selftests: Add FEAT_RAS EL2 registers to get-reg-list
Documentation: KVM: Use unordered list for pre-init VGIC registers
Paolo Bonzini (16):
Merge tag 'kvm-riscv-6.17-2' of https://github.com/kvm-riscv/linux into HEAD
Merge tag 'kvm-x86-irqs-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-mmio-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-generic-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-dirty_ring-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-no_assignment-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-misc-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-mmu-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-apic-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-selftests-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvm-x86-svm-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'x86_core_for_kvm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into HEAD
Merge tag 'kvm-x86-sev-6.17' of https://github.com/kvm-x86/linux into HEAD
Merge tag 'kvmarm-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
Merge tag 'loongarch-kvm-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD
Merge tag 'kvm-s390-next-6.17-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
Quan Zhou (4):
RISC-V: KVM: Enable ring-based dirty memory tracking
RISC-V: perf/kvm: Add reporting of interrupt events
RISC-V: KVM: Use find_vma_intersection() to search for intersecting VMAs
RISC-V: KVM: Avoid re-acquiring memslot in kvm_riscv_gstage_map()
Raghavendra Rao Ananta (2):
KVM: arm64: vgic-v3: Allow userspace to write GICD_TYPER2.nASSGIcap
KVM: arm64: selftests: Add test for nASSGIcap attribute
Rahul Kumar (1):
KVM: selftests: Fix spelling of 'occurrences' in sparsebit.c comments
Samuel Holland (1):
RISC-V: KVM: Fix inclusion of Smnpm in the guest ISA bitmap
Sascha Bischoff (5):
irqchip/gic-v5: Skip deactivate for forwarded PPI interrupts
irqchip/gic-v5: Populate struct gic_kvm_info
arm64/sysreg: Add ICH_VCTLR_EL2
KVM: arm64: gic-v5: Support GICv3 compat
KVM: arm64: gic-v5: Probe for GICv5
Sean Christopherson (165):
KVM: TDX: Use kvm_arch_vcpu.host_debugctl to restore the host's DEBUGCTL
KVM: x86: Convert vcpu_run()'s immediate exit param into a generic bitmap
KVM: x86: Drop kvm_x86_ops.set_dr6() in favor of a new KVM_RUN flag
KVM: VMX: Allow guest to set DEBUGCTL.RTM_DEBUG if RTM is supported
KVM: VMX: Extract checking of guest's DEBUGCTL into helper
KVM: SVM: Disable interception of SPEC_CTRL iff the MSR exists for the guest
KVM: SVM: Allocate IOPM pages after initial setup in svm_hardware_setup()
KVM: SVM: Don't BUG if setting up the MSR intercept bitmaps fails
KVM: SVM: Tag MSR bitmap initialization helpers with __init
KVM: SVM: Use ARRAY_SIZE() to iterate over direct_access_msrs
KVM: SVM: Kill the VM instead of the host if MSR interception is buggy
KVM: x86: Use non-atomic bit ops to manipulate "shadow" MSR intercepts
KVM: SVM: Massage name and param of helper that merges vmcb01 and vmcb12 MSRPMs
KVM: SVM: Clean up macros related to architectural MSRPM definitions
KVM: nSVM: Use dedicated array of MSRPM offsets to merge L0 and L1 bitmaps
KVM: nSVM: Omit SEV-ES specific passthrough MSRs from L0+L1 bitmap merge
KVM: nSVM: Don't initialize vmcb02 MSRPM with vmcb01's "always passthrough"
KVM: SVM: Add helpers for accessing MSR bitmap that don't rely on offsets
KVM: SVM: Implement and adopt VMX style MSR intercepts APIs
KVM: SVM: Pass through GHCB MSR if and only if VM is an SEV-ES guest
KVM: SVM: Drop "always" flag from list of possible passthrough MSRs
KVM: x86: Move definition of X2APIC_MSR() to lapic.h
KVM: VMX: Manually recalc all MSR intercepts on userspace MSR filter change
KVM: SVM: Manually recalc all MSR intercepts on userspace MSR filter change
KVM: x86: Rename msr_filter_changed() => recalc_msr_intercepts()
KVM: SVM: Rename init_vmcb_after_set_cpuid() to make it intercepts specific
KVM: SVM: Fold svm_vcpu_init_msrpm() into its sole caller
KVM: SVM: Merge "after set CPUID" intercept recalc helpers
KVM: SVM: Drop explicit check on MSRPM offset when emulating SEV-ES accesses
KVM: SVM: Move svm_msrpm_offset() to nested.c
KVM: SVM: Store MSRPM pointer as "void *" instead of "u32 *"
KVM: nSVM: Access MSRPM in 4-byte chunks only for merging L0 and L1 bitmaps
KVM: SVM: Return -EINVAL instead of MSR_INVALID to signal out-of-range MSR
KVM: nSVM: Merge MSRPM in 64-bit chunks on 64-bit kernels
KVM: SVM: Add a helper to allocate and initialize permissions bitmaps
KVM: x86: Simplify userspace filter logic when disabling MSR interception
KVM: selftests: Verify KVM disable interception (for userspace) on filter change
KVM: x86: Drop pending_smi vs. INIT_RECEIVED check when setting MP_STATE
KVM: x86: WARN and reject KVM_RUN if vCPU's MP_STATE is SIPI_RECEIVED
KVM: x86: Move INIT_RECEIVED vs. INIT/SIPI blocked check to KVM_RUN
KVM: x86: Refactor handling of SIPI_RECEIVED when setting MP_STATE
KVM: x86/mmu: Exempt nested EPT page tables from !USER, CR0.WP=0 logic
KVM: TDX: Move TDX hardware setup from main.c to tdx.c
KVM: selftests: Verify KVM is loaded when getting a KVM module param
KVM: selftests: Add __open_path_or_exit() variant to provide extra help info
KVM: selftests: Play nice with EACCES errors in open_path_or_exit()
KVM: selftests: Print a more helpful message for EACCESS in access tracking test
KVM: Bound the number of dirty ring entries in a single reset at INT_MAX
KVM: Bail from the dirty ring reset flow if a signal is pending
KVM: Conditionally reschedule when resetting the dirty ring
KVM: Check for empty mask of harvested dirty ring entries in caller
KVM: Use mask of harvested dirty ring entries to coalesce dirty ring resets
KVM: Assert that slots_lock is held when resetting per-vCPU dirty rings
KVM: arm64: WARN if unmapping a vLPI fails in any path
irqbypass: Drop pointless and misleading THIS_MODULE get/put
irqbypass: Drop superfluous might_sleep() annotations
irqbypass: Take ownership of producer/consumer token tracking
irqbypass: Explicitly track producer and consumer bindings
irqbypass: Use paired consumer/producer to disconnect during unregister
irqbypass: Use guard(mutex) in lieu of manual lock+unlock
irqbypass: Use xarray to track producers and consumers
irqbypass: Require producers to pass in Linux IRQ number during registration
KVM: x86: Trigger I/O APIC route rescan in kvm_arch_irq_routing_update()
KVM: x86: Drop superfluous kvm_set_pic_irq() => kvm_pic_set_irq() wrapper
KVM: x86: Drop superfluous kvm_set_ioapic_irq() => kvm_ioapic_set_irq() wrapper
KVM: x86: Drop superfluous kvm_hv_set_sint() => kvm_hv_synic_set_irq() wrapper
KVM: x86: Move PIT ioctl helpers to i8254.c
KVM: x86: Move KVM_{GET,SET}_IRQCHIP ioctl helpers to irq.c
KVM: x86: Rename irqchip_kernel() to irqchip_full()
KVM: x86: Move kvm_setup_default_irq_routing() into irq.c
KVM: x86: Move kvm_{request,free}_irq_source_id() to i8254.c (PIT)
KVM: x86: Hardcode the PIT IRQ source ID to '2'
KVM: x86: Don't clear PIT's IRQ line status when destroying PIT
KVM: x86: Explicitly check for in-kernel PIC when getting ExtINT
KVM: Move x86-only tracepoints to x86's trace.h
KVM: x86: Add CONFIG_KVM_IOAPIC to allow disabling in-kernel I/O APIC
KVM: Squash two CONFIG_HAVE_KVM_IRQCHIP #ifdefs into one
KVM: selftests: Fall back to split IRQ chip if full in-kernel chip is unsupported
KVM: x86: Move IRQ mask notifier infrastructure to I/O APIC emulation
KVM: x86: Fold irq_comm.c into irq.c
KVM: Pass new routing entries and irqfd when updating IRTEs
KVM: SVM: Track per-vCPU IRTEs using kvm_kernel_irqfd structure
KVM: SVM: Delete IRTE link from previous vCPU before setting new IRTE
iommu/amd: KVM: SVM: Delete now-unused cached/previous GA tag fields
KVM: SVM: Delete IRTE link from previous vCPU irrespective of new routing
KVM: SVM: Drop pointless masking of default APIC base when setting V_APIC_BAR
KVM: SVM: Drop pointless masking of kernel page pa's with AVIC HPA masks
KVM: SVM: Add helper to deduplicate code for getting AVIC backing page
KVM: SVM: Drop vcpu_svm's pointless avic_backing_page field
KVM: SVM: Inhibit AVIC if ID is too big instead of rejecting vCPU creation
KVM: SVM: Drop redundant check in AVIC code on ID during vCPU creation
KVM: SVM: Track AVIC tables as natively sized pointers, not "struct pages"
KVM: SVM: Drop superfluous "cache" of AVIC Physical ID entry pointer
KVM: VMX: Move enable_ipiv knob to common x86
KVM: VMX: Suppress PI notifications whenever the vCPU is put
KVM: SVM: Add a comment to explain why avic_vcpu_blocking() ignores IRQ blocking
iommu/amd: KVM: SVM: Use pi_desc_addr to derive ga_root_ptr
iommu/amd: KVM: SVM: Pass NULL @vcpu_info to indicate "not guest mode"
KVM: SVM: Stop walking list of routing table entries when updating IRTE
KVM: VMX: Stop walking list of routing table entries when updating IRTE
KVM: SVM: Extract SVM specific code out of get_pi_vcpu_info()
KVM: x86: Move IRQ routing/delivery APIs from x86.c => irq.c
KVM: x86: Nullify irqfd->producer after updating IRTEs
KVM: x86: Dedup AVIC vs. PI code for identifying target vCPU
KVM: x86: Move posted interrupt tracepoint to common code
KVM: SVM: Clean up return handling in avic_pi_update_irte()
iommu: KVM: Split "struct vcpu_data" into separate AMD vs. Intel structs
KVM: Don't WARN if updating IRQ bypass route fails
KVM: Fold kvm_arch_irqfd_route_changed() into kvm_arch_update_irqfd_routing()
KVM: x86: Track irq_bypass_vcpu in common x86 code
KVM: x86: Skip IOMMU IRTE updates if there's no old or new vCPU being targeted
KVM: x86: Don't update IRTE entries when old and new routes were !MSI
KVM: SVM: Revert IRTE to legacy mode if IOMMU doesn't provide IR metadata
KVM: SVM: Take and hold ir_list_lock across IRTE updates in IOMMU
iommu/amd: Document which IRTE fields amd_iommu_update_ga() can modify
iommu/amd: KVM: SVM: Infer IsRun from validity of pCPU destination
iommu/amd: Factor out helper for manipulating IRTE GA/CPU info
iommu/amd: KVM: SVM: Set pCPU info in IRTE when setting vCPU affinity
iommu/amd: KVM: SVM: Add IRTE metadata to affined vCPU's list if AVIC is inhibited
KVM: SVM: Don't check for assigned device(s) when updating affinity
KVM: SVM: Don't check for assigned device(s) when activating AVIC
KVM: SVM: WARN if (de)activating guest mode in IOMMU fails
KVM: SVM: Process all IRTEs on affinity change even if one update fails
KVM: SVM: WARN if updating IRTE GA fields in IOMMU fails
KVM: x86: Drop superfluous "has assigned device" check in kvm_pi_update_irte()
KVM: x86: WARN if IRQ bypass isn't supported in kvm_pi_update_irte()
KVM: x86: WARN if IRQ bypass routing is updated without in-kernel local APIC
KVM: SVM: WARN if ir_list is non-empty at vCPU free
KVM: x86: Decouple device assignment from IRQ bypass
KVM: VMX: WARN if VT-d Posted IRQs aren't possible when starting IRQ bypass
KVM: SVM: Use vcpu_idx, not vcpu_id, for GA log tag/metadata
iommu/amd: WARN if KVM calls GA IRTE helpers without virtual APIC support
KVM: SVM: Fold avic_set_pi_irte_mode() into its sole caller
KVM: SVM: Don't check vCPU's blocking status when toggling AVIC on/off
KVM: SVM: Consolidate IRTE update when toggling AVIC on/off
iommu/amd: KVM: SVM: Allow KVM to control need for GA log interrupts
KVM: SVM: Generate GA log IRQs only if the associated vCPUs is blocking
KVM: x86: Rename kvm_set_msi_irq() => kvm_msi_to_lapic_irq()
KVM: Use a local struct to do the initial vfs_poll() on an irqfd
KVM: Acquire SCRU lock outside of irqfds.lock during assignment
KVM: Initialize irqfd waitqueue callback when adding to the queue
KVM: Add irqfd to KVM's list via the vfs_poll() callback
KVM: Add irqfd to eventfd's waitqueue while holding irqfds.lock
sched/wait: Drop WQ_FLAG_EXCLUSIVE from add_wait_queue_priority()
xen: privcmd: Don't mark eventfd waiter as EXCLUSIVE
sched/wait: Add a waitqueue helper for fully exclusive priority waiters
KVM: Disallow binding multiple irqfds to an eventfd with a priority waiter
KVM: Drop sanity check that per-VM list of irqfds is unique
KVM: selftests: Assert that eventfd() succeeds in Xen shinfo test
KVM: selftests: Add utilities to create eventfds and do KVM_IRQFD
KVM: selftests: Add a KVM_IRQFD test to verify uniqueness requirements
KVM: x86/mmu: Dynamically allocate shadow MMU's hashed page list
KVM: x86: Use kvzalloc() to allocate VM struct
KVM: x86/mmu: Defer allocation of shadow MMU's hashed page list
KVM: x86: Avoid calling kvm_is_mmio_pfn() when kvm_x86_ops.get_mt_mask is NULL
KVM: x86/mmu: Locally cache whether a PFN is host MMIO when making a SPTE
KVM: VMX: Apply MMIO Stale Data mitigation if KVM maps MMIO into the guest
Merge branch 'kvm-x86 mmio'
Revert "kvm: detect assigned device via irqbypass manager"
VFIO: KVM: x86: Drop kvm_arch_{start,end}_assignment()
KVM: VMX: Add a macro to track which DEBUGCTL bits are host-owned
KVM: selftests: Expand set of APIs for pinning tasks to a single CPU
KVM: selftests: Convert arch_timer tests to common helpers to pin task
KVM: x86: Use wbinvd_on_cpu() instead of an open-coded equivalent
x86/apic: KVM: Deduplicate APIC vector => register+bit math
Shivank Garg (1):
KVM: guest_memfd: Remove redundant kvm_gmem_getattr implementation
Tom Lendacky (2):
KVM: SVM: Allow SNP guest policy disallow running with SMT enabled
KVM: SVM: Allow SNP guest policy to specify SINGLE_SOCKET
Xin Li (1):
KVM: x86: Advertise support for LKGS
Xu Lu (1):
RISC-V: KVM: Delegate illegal instruction fault to VS mode
Yulong Han (1):
LoongArch: KVM: Add tracepoints for CPUCFG and CSR emulation exits
Yury Norov (NVIDIA) (2):
LoongArch: KVM: Rework kvm_send_pv_ipi()
LoongArch: KVM: Simplify kvm_deliver_intr()
Zheyun Shen (2):
KVM: SVM: Remove wbinvd in sev_vm_destroy()
KVM: SVM: Flush cache only on CPUs running SEV guest
Documentation/arch/arm64/booting.rst | 41 +
.../interrupt-controller/arm,gic-v5-iwb.yaml | 78 ++
.../bindings/interrupt-controller/arm,gic-v5.yaml | 267 +++++
Documentation/virt/kvm/api.rst | 40 +-
Documentation/virt/kvm/devices/arm-vgic-v3.rst | 77 +-
MAINTAINERS | 10 +
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/barrier.h | 3 +
arch/arm64/include/asm/el2_setup.h | 45 +
arch/arm64/include/asm/kvm_emulate.h | 51 +-
arch/arm64/include/asm/kvm_host.h | 36 +-
arch/arm64/include/asm/kvm_mmu.h | 18 +
arch/arm64/include/asm/kvm_nested.h | 2 +
arch/arm64/include/asm/smp.h | 24 +-
arch/arm64/include/asm/sysreg.h | 71 +-
arch/arm64/include/asm/vncr_mapping.h | 2 +
arch/arm64/kernel/cpufeature.c | 26 +-
arch/arm64/kernel/smp.c | 144 ++-
arch/arm64/kvm/Makefile | 3 +-
arch/arm64/kvm/arch_timer.c | 2 +-
arch/arm64/kvm/arm.c | 36 +-
arch/arm64/kvm/at.c | 80 +-
arch/arm64/kvm/config.c | 255 +++-
arch/arm64/kvm/emulate-nested.c | 49 +-
arch/arm64/kvm/guest.c | 62 +-
arch/arm64/kvm/handle_exit.c | 24 +-
arch/arm64/kvm/hyp/exception.c | 16 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 53 +-
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 49 +-
arch/arm64/kvm/hyp/vgic-v3-sr.c | 53 +-
arch/arm64/kvm/hyp/vhe/switch.c | 14 +-
arch/arm64/kvm/hyp/vhe/sysreg-sr.c | 6 +
arch/arm64/kvm/inject_fault.c | 235 ++--
arch/arm64/kvm/mmio.c | 12 +-
arch/arm64/kvm/mmu.c | 105 +-
arch/arm64/kvm/nested.c | 109 +-
arch/arm64/kvm/sys_regs.c | 205 +++-
arch/arm64/kvm/sys_regs.h | 2 +-
arch/arm64/kvm/trace_handle_exit.h | 2 +-
arch/arm64/kvm/vgic-sys-reg-v3.c | 127 +-
arch/arm64/kvm/vgic/vgic-init.c | 30 +-
arch/arm64/kvm/vgic/vgic-its.c | 5 +-
arch/arm64/kvm/vgic/vgic-kvm-device.c | 70 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 33 +-
arch/arm64/kvm/vgic/vgic-v3-nested.c | 2 +-
arch/arm64/kvm/vgic/vgic-v4.c | 14 +-
arch/arm64/kvm/vgic/vgic-v5.c | 52 +
arch/arm64/kvm/vgic/vgic.c | 4 +-
arch/arm64/kvm/vgic/vgic.h | 48 +
arch/arm64/tools/cpucaps | 4 +-
arch/arm64/tools/sysreg | 514 +++++++-
arch/loongarch/include/asm/kvm_host.h | 12 +-
arch/loongarch/kvm/exit.c | 33 +-
arch/loongarch/kvm/intc/eiointc.c | 553 ++-------
arch/loongarch/kvm/intc/ipi.c | 28 +-
arch/loongarch/kvm/intc/pch_pic.c | 4 +-
arch/loongarch/kvm/interrupt.c | 25 +-
arch/loongarch/kvm/trace.h | 14 +-
arch/loongarch/kvm/vcpu.c | 8 +-
arch/riscv/include/asm/kvm_aia.h | 2 +-
arch/riscv/include/asm/kvm_gstage.h | 72 ++
arch/riscv/include/asm/kvm_host.h | 105 +-
arch/riscv/include/asm/kvm_mmu.h | 21 +
arch/riscv/include/asm/kvm_tlb.h | 84 ++
arch/riscv/include/asm/kvm_vcpu_sbi.h | 12 +
arch/riscv/include/asm/kvm_vmid.h | 27 +
arch/riscv/include/uapi/asm/kvm.h | 1 +
arch/riscv/kvm/Kconfig | 1 +
arch/riscv/kvm/Makefile | 1 +
arch/riscv/kvm/aia_device.c | 6 +-
arch/riscv/kvm/aia_imsic.c | 12 +-
arch/riscv/kvm/gstage.c | 338 ++++++
arch/riscv/kvm/main.c | 3 +-
arch/riscv/kvm/mmu.c | 509 ++------
arch/riscv/kvm/tlb.c | 110 +-
arch/riscv/kvm/vcpu.c | 48 +-
arch/riscv/kvm/vcpu_exit.c | 20 +-
arch/riscv/kvm/vcpu_onereg.c | 83 +-
arch/riscv/kvm/vcpu_sbi.c | 49 +
arch/riscv/kvm/vcpu_sbi_replace.c | 17 +-
arch/riscv/kvm/vcpu_sbi_sta.c | 3 +-
arch/riscv/kvm/vcpu_sbi_v01.c | 25 +-
arch/riscv/kvm/vm.c | 7 +-
arch/riscv/kvm/vmid.c | 25 +
arch/s390/include/asm/entry-common.h | 10 +
arch/s390/include/asm/kvm_host.h | 3 +
arch/s390/kvm/kvm-s390.c | 51 +-
arch/s390/kvm/vsie.c | 17 +-
arch/x86/include/asm/apic.h | 66 +-
arch/x86/include/asm/irq_remapping.h | 17 +-
arch/x86/include/asm/kvm-x86-ops.h | 5 +-
arch/x86/include/asm/kvm_host.h | 76 +-
arch/x86/include/asm/msr-index.h | 1 +
arch/x86/include/asm/svm.h | 13 +-
arch/x86/kvm/Kconfig | 10 +
arch/x86/kvm/Makefile | 7 +-
arch/x86/kvm/cpuid.c | 1 +
arch/x86/kvm/hyperv.c | 10 +-
arch/x86/kvm/hyperv.h | 3 +-
arch/x86/kvm/i8254.c | 90 +-
arch/x86/kvm/i8254.h | 17 +-
arch/x86/kvm/i8259.c | 17 +-
arch/x86/kvm/ioapic.c | 55 +-
arch/x86/kvm/ioapic.h | 24 +-
arch/x86/kvm/irq.c | 560 ++++++++-
arch/x86/kvm/irq.h | 45 +-
arch/x86/kvm/irq_comm.c | 469 --------
arch/x86/kvm/lapic.c | 104 +-
arch/x86/kvm/lapic.h | 26 +-
arch/x86/kvm/mmu/mmu.c | 75 +-
arch/x86/kvm/mmu/mmu_internal.h | 3 +
arch/x86/kvm/mmu/paging_tmpl.h | 8 +-
arch/x86/kvm/mmu/spte.c | 43 +-
arch/x86/kvm/mmu/spte.h | 10 +
arch/x86/kvm/svm/avic.c | 692 +++++------
arch/x86/kvm/svm/nested.c | 128 +-
arch/x86/kvm/svm/sev.c | 149 ++-
arch/x86/kvm/svm/svm.c | 512 +++-----
arch/x86/kvm/svm/svm.h | 137 ++-
arch/x86/kvm/trace.h | 99 +-
arch/x86/kvm/vmx/capabilities.h | 1 -
arch/x86/kvm/vmx/common.h | 2 -
arch/x86/kvm/vmx/main.c | 61 +-
arch/x86/kvm/vmx/nested.c | 27 +-
arch/x86/kvm/vmx/pmu_intel.c | 8 +-
arch/x86/kvm/vmx/posted_intr.c | 138 +--
arch/x86/kvm/vmx/posted_intr.h | 10 +-
arch/x86/kvm/vmx/run_flags.h | 10 +-
arch/x86/kvm/vmx/tdx.c | 71 +-
arch/x86/kvm/vmx/tdx.h | 1 +
arch/x86/kvm/vmx/vmx.c | 296 ++---
arch/x86/kvm/vmx/vmx.h | 57 +-
arch/x86/kvm/vmx/x86_ops.h | 16 +-
arch/x86/kvm/x86.c | 389 ++-----
arch/x86/kvm/x86.h | 40 +-
drivers/hv/mshv_eventfd.c | 8 +
drivers/iommu/amd/amd_iommu_types.h | 1 -
drivers/iommu/amd/iommu.c | 125 +-
drivers/iommu/intel/irq_remapping.c | 10 +-
drivers/irqchip/Kconfig | 12 +
drivers/irqchip/Makefile | 5 +-
drivers/irqchip/irq-gic-common.h | 2 -
...3-its-msi-parent.c => irq-gic-its-msi-parent.c} | 168 ++-
drivers/irqchip/irq-gic-its-msi-parent.h | 12 +
drivers/irqchip/irq-gic-v3-its.c | 1 +
drivers/irqchip/irq-gic-v4.c | 4 +-
drivers/irqchip/irq-gic-v5-irs.c | 822 +++++++++++++
drivers/irqchip/irq-gic-v5-its.c | 1228 ++++++++++++++++++++
drivers/irqchip/irq-gic-v5-iwb.c | 284 +++++
drivers/irqchip/irq-gic-v5.c | 1137 ++++++++++++++++++
drivers/irqchip/irq-gic.c | 2 +-
drivers/irqchip/irq-msi-lib.c | 5 +-
drivers/of/irq.c | 22 +-
drivers/pci/msi/irqdomain.c | 20 +
drivers/vfio/pci/vfio_pci_intrs.c | 10 +-
drivers/vhost/vdpa.c | 10 +-
include/asm-generic/msi.h | 1 +
include/kvm/arm_vgic.h | 11 +-
include/linux/amd-iommu.h | 25 +-
include/linux/entry-common.h | 16 +
include/linux/irqbypass.h | 46 +-
include/linux/irqchip/arm-gic-v4.h | 2 +-
include/linux/irqchip/arm-gic-v5.h | 394 +++++++
include/linux/irqchip/arm-vgic-info.h | 4 +
include/linux/irqdomain.h | 3 +
include/linux/kvm_dirty_ring.h | 18 +-
include/linux/kvm_host.h | 36 +-
include/linux/kvm_irqfd.h | 5 +-
include/linux/msi.h | 1 +
include/linux/of_irq.h | 5 +
include/linux/wait.h | 2 +
include/trace/events/kvm.h | 111 +-
include/uapi/linux/kvm.h | 2 +
kernel/entry/common.c | 3 +-
kernel/sched/wait.c | 22 +-
tools/include/uapi/linux/kvm.h | 1 +
tools/perf/arch/riscv/util/kvm-stat.c | 6 +-
tools/perf/arch/riscv/util/riscv_exception_types.h | 35 -
tools/perf/arch/riscv/util/riscv_trap_types.h | 57 +
tools/testing/selftests/kvm/Makefile.kvm | 4 +-
.../selftests/kvm/access_tracking_perf_test.c | 7 +-
tools/testing/selftests/kvm/arch_timer.c | 7 +-
.../selftests/kvm/arm64/arch_timer_edge_cases.c | 23 +-
.../testing/selftests/kvm/arm64/external_aborts.c | 330 ++++++
tools/testing/selftests/kvm/arm64/get-reg-list.c | 203 +++-
tools/testing/selftests/kvm/arm64/mmio_abort.c | 159 ---
tools/testing/selftests/kvm/arm64/set_id_regs.c | 14 +-
tools/testing/selftests/kvm/arm64/vgic_init.c | 259 ++++-
tools/testing/selftests/kvm/arm64/vgic_irq.c | 12 +-
tools/testing/selftests/kvm/config | 1 +
.../selftests/kvm/include/arm64/processor.h | 10 +
tools/testing/selftests/kvm/include/kvm_util.h | 72 +-
.../testing/selftests/kvm/include/x86/processor.h | 6 +-
tools/testing/selftests/kvm/irqfd_test.c | 135 +++
tools/testing/selftests/kvm/lib/kvm_util.c | 51 +-
tools/testing/selftests/kvm/lib/memstress.c | 2 +-
tools/testing/selftests/kvm/lib/sparsebit.c | 4 +-
tools/testing/selftests/kvm/lib/x86/processor.c | 10 -
tools/testing/selftests/kvm/x86/aperfmperf_test.c | 213 ++++
.../selftests/kvm/x86/userspace_msr_exit_test.c | 8 +
.../x86/vmx_exception_with_invalid_guest_state.c | 2 +-
tools/testing/selftests/kvm/x86/xen_shinfo_test.c | 21 +-
virt/kvm/dirty_ring.c | 107 +-
virt/kvm/eventfd.c | 159 ++-
virt/kvm/guest_memfd.c | 11 -
virt/kvm/irqchip.c | 2 -
virt/kvm/kvm_main.c | 13 +-
virt/kvm/vfio.c | 3 -
virt/lib/irqbypass.c | 190 ++-
209 files changed, 12103 insertions(+), 4778 deletions(-)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/arm,gic-v5-iwb.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/arm,gic-v5.yaml
create mode 100644 arch/arm64/kvm/vgic/vgic-v5.c
create mode 100644 arch/riscv/include/asm/kvm_gstage.h
create mode 100644 arch/riscv/include/asm/kvm_mmu.h
create mode 100644 arch/riscv/include/asm/kvm_tlb.h
create mode 100644 arch/riscv/include/asm/kvm_vmid.h
create mode 100644 arch/riscv/kvm/gstage.c
delete mode 100644 arch/x86/kvm/irq_comm.c
rename drivers/irqchip/{irq-gic-v3-its-msi-parent.c => irq-gic-its-msi-parent.c} (59%)
create mode 100644 drivers/irqchip/irq-gic-its-msi-parent.h
create mode 100644 drivers/irqchip/irq-gic-v5-irs.c
create mode 100644 drivers/irqchip/irq-gic-v5-its.c
create mode 100644 drivers/irqchip/irq-gic-v5-iwb.c
create mode 100644 drivers/irqchip/irq-gic-v5.c
create mode 100644 include/linux/irqchip/arm-gic-v5.h
delete mode 100644 tools/perf/arch/riscv/util/riscv_exception_types.h
create mode 100644 tools/perf/arch/riscv/util/riscv_trap_types.h
create mode 100644 tools/testing/selftests/kvm/arm64/external_aborts.c
delete mode 100644 tools/testing/selftests/kvm/arm64/mmio_abort.c
create mode 100644 tools/testing/selftests/kvm/irqfd_test.c
create mode 100644 tools/testing/selftests/kvm/x86/aperfmperf_test.c
Powered by blists - more mailing lists