[GIT PULL] KVM/arm64 updates for 7.1
Paolo Bonzini
pbonzini at redhat.com
Mon Apr 13 02:48:16 PDT 2026
On Wed, Apr 8, 2026 at 5:55 PM Marc Zyngier <maz at kernel.org> wrote:
>
> Paolo,
>
> 7.1 should be a pretty large milestone for KVM/arm64. Of note, we have:
>
> - the hypervisor tracing infrastructure, which is pretty large on its
> own, but also comes with an equally large set of tracing specific
> patches (we share a branch with the tracing tree).
>
> - the first set of patches for native GICv5 support, limited to PPIs
> for the time being. I expect this to take a few kernel revisions
> to reach the feature-complete state.
>
> - some movement on the pKVM front, in the form of protected guest and
> protected memory support.
>
> The rest is a large set of fixes, cleanups and rework in order to make
> some of the most hairy code more maintainable (user_mem_abort() being
> the most significant example).
Pulled, thanks. Since I usually send my PR around Thursday, by that
time the tracing changes should be in.
Paolo
> Please pull,
>
> M.
>
> The following changes since commit f338e77383789c0cae23ca3d48adcc5e9e137e3c:
>
> Linux 7.0-rc4 (2026-03-15 13:52:05 -0700)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-7.1
>
> for you to fetch changes up to 94b4ae79ebb42a8a6f2124b4d4b033b15a98e4f9:
>
> Merge branch kvm-arm64/misc-7.1 into kvmarm-master/next (2026-04-08 12:26:11 +0100)
>
> ----------------------------------------------------------------
> KVM/arm64 updates for 7.1
>
> * New features:
>
> - Add support for tracing in the standalone EL2 hypervisor code,
> which should help both debugging and performance analysis.
> This comes with a full infrastructure for 'remote' trace buffers
> that can be exposed by non-kernel entities such as firmware.
>
> - Add support for GICv5 Per Processor Interrupts (PPIs), as the
> starting point for supporting the new GIC architecture in KVM.
>
> - Finally add support for pKVM protected guests, with anonymous
> memory being used as a backing store. About time!
>
> * Improvements and bug fixes:
>
> - Rework the dreaded user_mem_abort() function to make it more
> maintainable, reducing the amount of state being exposed to
> the various helpers and rendering a substantial amount of
> state immutable.
>
> - Expand the Stage-2 page table dumper to support NV shadow
> page tables on a per-VM basis.
>
> - Tidy up the pKVM PSCI proxy code to be slightly less hard
> to follow.
>
> - Fix both SPE and TRBE in non-VHE configurations so that they
> do not generate spurious, out of context table walks that
> ultimately lead to very bad HW lockups.
>
> - A small set of patches fixing the Stage-2 MMU freeing in error
> cases.
>
> - Tighten-up accepted SMC immediate value to be only #0 for host
> SMCCC calls.
>
> - The usual cleanups and other selftest churn.
>
> ----------------------------------------------------------------
> Arnd Bergmann (3):
> tracing: add more symbols to whitelist
> KVM: arm64: tracing: add ftrace dependency
> KVM: arm64: avoid unused-variable warning
>
> Fuad Tabba (14):
> KVM: arm64: Extract VMA size resolution in user_mem_abort()
> KVM: arm64: Introduce struct kvm_s2_fault to user_mem_abort()
> KVM: arm64: Extract PFN resolution in user_mem_abort()
> KVM: arm64: Isolate mmap_read_lock inside new kvm_s2_fault_get_vma_info() helper
> KVM: arm64: Extract stage-2 permission logic in user_mem_abort()
> KVM: arm64: Extract page table mapping in user_mem_abort()
> KVM: arm64: Simplify nested VMA shift calculation
> KVM: arm64: Remove redundant state variables from struct kvm_s2_fault
> KVM: arm64: Simplify return logic in user_mem_abort()
> KVM: arm64: Initialize struct kvm_s2_fault completely at declaration
> KVM: arm64: Optimize early exit checks in kvm_s2_fault_pin_pfn()
> KVM: arm64: Hoist MTE validation check out of MMU lock path
> KVM: arm64: Clean up control flow in kvm_s2_fault_map()
> KVM: arm64: Expose self-hosted debug regs as RAZ/WI for protected guests
>
> Marc Zyngier (49):
> tracing: Restore accidentally removed SPDX tag
> KVM: arm64: pkvm: Move error handling to the end of kvm_hyp_cpu_entry
> KVM: arm64: pkvm: Simplify BTI handling on CPU boot
> KVM: arm64: pkvm: Turn __kvm_hyp_init_cpu into an inner label
> KVM: arm64: pkvm: Use direct function pointers for cpu_{on,resume}
> KVM: arm64: Remove extra ISBs when using msr_hcr_el2
> KVM: arm64: Kill fault->ipa
> KVM: arm64: Make fault_ipa immutable
> KVM: arm64: Move fault context to const structure
> KVM: arm64: Replace fault_is_perm with a helper
> KVM: arm64: Constrain fault_granule to kvm_s2_fault_map()
> KVM: arm64: Kill write_fault from kvm_s2_fault
> KVM: arm64: Kill exec_fault from kvm_s2_fault
> KVM: arm64: Kill topup_memcache from kvm_s2_fault
> KVM: arm64: Move VMA-related information to kvm_s2_fault_vma_info
> KVM: arm64: Kill logging_active from kvm_s2_fault
> KVM: arm64: Restrict the scope of the 'writable' attribute
> KVM: arm64: Move kvm_s2_fault.{pfn,page} to kvm_s2_vma_info
> KVM: arm64: Replace force_pte with a max_map_size attribute
> KVM: arm64: Move device mapping management into kvm_s2_fault_pin_pfn()
> KVM: arm64: Directly expose mapping prot and kill kvm_s2_fault
> KVM: arm64: Simplify integration of adjust_nested_*_perms()
> KVM: arm64: Convert gmem_abort() to struct kvm_s2_fault_desc
> KVM: arm64: vgic: Don't reset cpuif/redist addresses at finalize time
> KVM: arm64: Don't skip per-vcpu NV initialisation
> arm64: Fix field references for ICH_PPI_DVIR[01]_EL2
> KVM: arm64: Fix writeable mask for ID_AA64PFR2_EL1
> KVM: arm64: Account for RESx bits in __compute_fgt()
> KVM: arm64: vgic-v5: Hold config_lock while finalizing GICv5 PPIs
> KVM: arm64: vgic-v5: Transfer edge pending state to ICH_PPI_PENDRx_EL2
> KVM: arm64: vgic-v5: Cast vgic_apr to u32 to avoid undefined behaviours
> KVM: arm64: vgic-v5: Make the effective priority mask a strict limit
> KVM: arm64: vgic-v5: Correctly set dist->ready once initialised
> KVM: arm64: Kill arch_timer_context::direct field
> KVM: arm64: Remove evaluation of timer state in kvm_cpu_has_pending_timer()
> KVM: arm64: Move GICv5 timer PPI validation into timer_irqs_are_valid()
> KVM: arm64: Correctly plumb ID_AA64PFR2_EL1 into pkvm idreg handling
> KVM: arm64: Don't advertises GICv3 in ID_PFR1_EL1 if AArch32 isn't supported
> KVM: arm64: set_id_regs: Allow GICv3 support to be set at runtime
> KVM: arm64: Advertise ID_AA64PFR2_EL1.GCIE
> Merge branch kvm-arm64/hyp-tracing into kvmarm-master/next
> Merge branch kvm-arm64/vgic-v5-ppi into kvmarm-master/next
> Merge branch kvm-arm64/nv-s2-debugfs into kvmarm-master/next
> Merge branch kvm-arm64/pkvm-psci into kvmarm-master/next
> Merge branch kvm-arm64/user_mem_abort-rework into kvmarm-master/next
> Merge branch kvm-arm64/spe-trbe-nvhe into kvmarm-master/next
> Merge branch kvm-arm64/pkvm-protected-guest into kvmarm-master/next
> Merge branch kvm-arm64/vgic-fixes-7.1 into kvmarm-master/next
> Merge branch kvm-arm64/misc-7.1 into kvmarm-master/next
>
> Nathan Chancellor (1):
> tracing: Adjust cmd_check_undefined to show unexpected undefined symbols
>
> Quentin Perret (1):
> KVM: arm64: Inject SIGSEGV on illegal accesses
>
> Sascha Bischoff (41):
> KVM: arm64: vgic-v3: Drop userspace write sanitization for ID_AA64PFR0.GIC on GICv5
> KVM: arm64: vgic: Rework vgic_is_v3() and add vgic_host_has_gicvX()
> KVM: arm64: Return early from kvm_finalize_sys_regs() if guest has run
> KVM: arm64: vgic: Split out mapping IRQs and setting irq_ops
> arm64/sysreg: Add remaining GICv5 ICC_ & ICH_ sysregs for KVM support
> arm64/sysreg: Add GICR CDNMIA encoding
> KVM: arm64: gic-v5: Add ARM_VGIC_V5 device to KVM headers
> KVM: arm64: gic: Introduce interrupt type helpers
> KVM: arm64: gic-v5: Add Arm copyright header
> KVM: arm64: gic-v5: Detect implemented PPIs on boot
> KVM: arm64: gic-v5: Sanitize ID_AA64PFR2_EL1.GCIE
> KVM: arm64: gic-v5: Support GICv5 FGTs & FGUs
> KVM: arm64: gic-v5: Add emulation for ICC_IAFFIDR_EL1 accesses
> KVM: arm64: gic-v5: Trap and emulate ICC_IDR0_EL1 accesses
> KVM: arm64: gic-v5: Add vgic-v5 save/restore hyp interface
> KVM: arm64: gic-v5: Implement GICv5 load/put and save/restore
> KVM: arm64: gic-v5: Finalize GICv5 PPIs and generate mask
> KVM: arm64: gic: Introduce queue_irq_unlock to irq_ops
> KVM: arm64: gic-v5: Implement PPI interrupt injection
> KVM: arm64: gic-v5: Init Private IRQs (PPIs) for GICv5
> KVM: arm64: gic-v5: Clear TWI if single task running
> KVM: arm64: gic-v5: Check for pending PPIs
> KVM: arm64: gic-v5: Trap and mask guest ICC_PPI_ENABLERx_EL1 writes
> KVM: arm64: Introduce set_direct_injection irq_op
> KVM: arm64: gic-v5: Implement direct injection of PPIs
> KVM: arm64: gic-v5: Support GICv5 interrupts with KVM_IRQ_LINE
> KVM: arm64: gic-v5: Create and initialise vgic_v5
> KVM: arm64: gic-v5: Initialise ID and priority bits when resetting vcpu
> irqchip/gic-v5: Introduce minimal irq_set_type() for PPIs
> KVM: arm64: gic-v5: Enlighten arch timer for GICv5
> KVM: arm64: gic-v5: Mandate architected PPI for PMU emulation on GICv5
> KVM: arm64: gic: Hide GICv5 for protected guests
> KVM: arm64: gic-v5: Hide FEAT_GCIE from NV GICv5 guests
> KVM: arm64: gic-v5: Introduce kvm_arm_vgic_v5_ops and register them
> KVM: arm64: gic-v5: Set ICH_VCTLR_EL2.En on boot
> KVM: arm64: gic-v5: Probe for GICv5 device
> Documentation: KVM: Introduce documentation for VGICv5
> KVM: arm64: gic-v5: Communicate userspace-driveable PPIs via a UAPI
> KVM: arm64: selftests: Introduce a minimal GICv5 PPI selftest
> KVM: arm64: selftests: Add no-vgic-v5 selftest
> KVM: arm64: vgic-v5: Fold PPI state for all exposed PPIs
>
> Sebastian Ene (1):
> KVM: arm64: Prevent the host from using an smc with imm16 != 0
>
> Vincent Donnefort (35):
> ring-buffer: Add page statistics to the meta-page
> ring-buffer: Store bpage pointers into subbuf_ids
> ring-buffer: Introduce ring-buffer remotes
> ring-buffer: Add non-consuming read for ring-buffer remotes
> tracing: Introduce trace remotes
> tracing: Add reset to trace remotes
> tracing: Add non-consuming read to trace remotes
> tracing: Add init callback to trace remotes
> tracing: Add events to trace remotes
> tracing: Add events/ root files to trace remotes
> tracing: Add helpers to create trace remote events
> ring-buffer: Export buffer_data_page and macros
> tracing: Introduce simple_ring_buffer
> tracing: Add a trace remote module for testing
> tracing: selftests: Add trace remote tests
> Documentation: tracing: Add tracing remotes
> tracing: load/unload page callbacks for simple_ring_buffer
> tracing: Check for undefined symbols in simple_ring_buffer
> KVM: arm64: Add PKVM_DISABLE_STAGE2_ON_PANIC
> KVM: arm64: Add clock support to nVHE/pKVM hyp
> KVM: arm64: Initialise hyp_nr_cpus for nVHE hyp
> KVM: arm64: Support unaligned fixmap in the pKVM hyp
> KVM: arm64: Add tracing capability for the nVHE/pKVM hyp
> KVM: arm64: Add trace remote for the nVHE/pKVM hyp
> KVM: arm64: Sync boot clock with the nVHE/pKVM hyp
> KVM: arm64: Add trace reset to the nVHE/pKVM hyp
> KVM: arm64: Add event support to the nVHE/pKVM hyp and trace remote
> KVM: arm64: Add hyp_enter/hyp_exit events to nVHE/pKVM hyp
> KVM: arm64: Add selftest event support to nVHE/pKVM hyp
> tracing: selftests: Add hypervisor trace remote tests
> KVM: arm64: Fix out-of-tree build for nVHE/pKVM tracing
> tracing: Update undefined symbols allow list for simple_ring_buffer
> tracing: Generate undef symbols allowlist for simple_ring_buffer
> tracing: Non-consuming read for trace remotes with an offline CPU
> tracing: selftests: Extend hotplug testing for trace remotes
>
> Wei-Lin Chang (2):
> KVM: arm64: ptdump: Make KVM ptdump code s2 mmu aware
> KVM: arm64: nv: Expose shadow page tables in debugfs
>
> Will Deacon (44):
> KVM: arm64: Disable TRBE Trace Buffer Unit when running in guest context
> KVM: arm64: Disable SPE Profiling Buffer when running in guest context
> KVM: arm64: Don't pass host_debug_state to BRBE world-switch routines
> KVM: arm64: Remove unused PKVM_ID_FFA definition
> KVM: arm64: Don't leak stage-2 page-table if VM fails to init under pKVM
> KVM: arm64: Move handle check into pkvm_pgtable_stage2_destroy_range()
> KVM: arm64: Rename __pkvm_pgtable_stage2_unmap()
> KVM: arm64: Don't advertise unsupported features for protected guests
> KVM: arm64: Remove is_protected_kvm_enabled() checks from hypercalls
> KVM: arm64: Ignore MMU notifier callbacks for protected VMs
> KVM: arm64: Prevent unsupported memslot operations on protected VMs
> KVM: arm64: Ignore -EAGAIN when mapping in pages for the pKVM host
> KVM: arm64: Split teardown hypercall into two phases
> KVM: arm64: Introduce __pkvm_host_donate_guest()
> KVM: arm64: Hook up donation hypercall to pkvm_pgtable_stage2_map()
> KVM: arm64: Handle aborts from protected VMs
> KVM: arm64: Introduce __pkvm_reclaim_dying_guest_page()
> KVM: arm64: Hook up reclaim hypercall to pkvm_pgtable_stage2_destroy()
> KVM: arm64: Factor out pKVM host exception injection logic
> KVM: arm64: Support translation faults in inject_host_exception()
> KVM: arm64: Avoid pointless annotation when mapping host-owned pages
> KVM: arm64: Generalise kvm_pgtable_stage2_set_owner()
> KVM: arm64: Introduce host_stage2_set_owner_metadata_locked()
> KVM: arm64: Change 'pkvm_handle_t' to u16
> KVM: arm64: Annotate guest donations with handle and gfn in host stage-2
> KVM: arm64: Introduce hypercall to force reclaim of a protected page
> KVM: arm64: Reclaim faulting page from pKVM in spurious fault handler
> KVM: arm64: Return -EFAULT from VCPU_RUN on access to a poisoned pte
> KVM: arm64: Add hvc handler at EL2 for hypercalls from protected VMs
> KVM: arm64: Implement the MEM_SHARE hypercall for protected VMs
> KVM: arm64: Implement the MEM_UNSHARE hypercall for protected VMs
> KVM: arm64: Allow userspace to create protected VMs when pKVM is enabled
> KVM: arm64: Add some initial documentation for pKVM
> KVM: arm64: Extend pKVM page ownership selftests to cover guest donation
> KVM: arm64: Register 'selftest_vm' in the VM table
> KVM: arm64: Extend pKVM page ownership selftests to cover forced reclaim
> KVM: arm64: Extend pKVM page ownership selftests to cover guest hvcs
> KVM: arm64: Rename PKVM_PAGE_STATE_MASK
> drivers/virt: pkvm: Add Kconfig dependency on DMA_RESTRICTED_POOL
> KVM: arm64: Prevent teardown finalisation of referenced 'hyp_vm'
> KVM: arm64: Allow get_pkvm_hyp_vm() to take a reference to a dying VM
> KVM: arm64: Don't hold 'vm_table_lock' across guest page reclaim
> KVM: arm64: Don't leave mmu->pgt dangling on kvm_init_stage2_mmu() error
> KVM: arm64: Destroy stage-2 page-table in kvm_arch_destroy_vm()
>
> Zenghui Yu (Huawei) (2):
> KVM: arm64: ptdump: Initialize parser_state before pgtable walk
> KVM: arm64: selftests: Avoid testing the IMPDEF behavior
>
> Documentation/admin-guide/kernel-parameters.txt | 4 +-
> Documentation/trace/index.rst | 11 +
> Documentation/trace/remotes.rst | 66 +
> Documentation/virt/kvm/api.rst | 6 +-
> Documentation/virt/kvm/arm/index.rst | 1 +
> Documentation/virt/kvm/arm/pkvm.rst | 106 ++
> Documentation/virt/kvm/devices/arm-vgic-v5.rst | 50 +
> Documentation/virt/kvm/devices/index.rst | 1 +
> Documentation/virt/kvm/devices/vcpu.rst | 5 +-
> arch/arm64/include/asm/el2_setup.h | 4 +-
> arch/arm64/include/asm/kvm_asm.h | 44 +-
> arch/arm64/include/asm/kvm_define_hypevents.h | 16 +
> arch/arm64/include/asm/kvm_host.h | 50 +-
> arch/arm64/include/asm/kvm_hyp.h | 14 +-
> arch/arm64/include/asm/kvm_hypevents.h | 60 +
> arch/arm64/include/asm/kvm_hyptrace.h | 26 +
> arch/arm64/include/asm/kvm_mmu.h | 4 +
> arch/arm64/include/asm/kvm_pgtable.h | 45 +-
> arch/arm64/include/asm/kvm_pkvm.h | 4 +-
> arch/arm64/include/asm/sysreg.h | 13 +-
> arch/arm64/include/asm/virt.h | 9 +
> arch/arm64/include/asm/vncr_mapping.h | 3 +
> arch/arm64/include/uapi/asm/kvm.h | 1 +
> arch/arm64/kernel/cpufeature.c | 1 +
> arch/arm64/kernel/hyp-stub.S | 1 -
> arch/arm64/kernel/image-vars.h | 4 +
> arch/arm64/kernel/vmlinux.lds.S | 18 +
> arch/arm64/kvm/Kconfig | 64 +-
> arch/arm64/kvm/Makefile | 2 +
> arch/arm64/kvm/arch_timer.c | 102 +-
> arch/arm64/kvm/arm.c | 69 +-
> arch/arm64/kvm/config.c | 127 +-
> arch/arm64/kvm/emulate-nested.c | 68 +
> arch/arm64/kvm/handle_exit.c | 2 +-
> arch/arm64/kvm/hyp/include/hyp/switch.h | 27 +
> arch/arm64/kvm/hyp/include/nvhe/arm-smccc.h | 23 +
> arch/arm64/kvm/hyp/include/nvhe/clock.h | 16 +
> arch/arm64/kvm/hyp/include/nvhe/define_events.h | 14 +
> arch/arm64/kvm/hyp/include/nvhe/mem_protect.h | 12 +-
> arch/arm64/kvm/hyp/include/nvhe/memory.h | 12 +-
> arch/arm64/kvm/hyp/include/nvhe/pkvm.h | 7 +-
> arch/arm64/kvm/hyp/include/nvhe/trace.h | 70 +
> arch/arm64/kvm/hyp/include/nvhe/trap_handler.h | 2 +
> arch/arm64/kvm/hyp/nvhe/Makefile | 8 +-
> arch/arm64/kvm/hyp/nvhe/clock.c | 65 +
> arch/arm64/kvm/hyp/nvhe/debug-sr.c | 116 +-
> arch/arm64/kvm/hyp/nvhe/events.c | 25 +
> arch/arm64/kvm/hyp/nvhe/ffa.c | 28 +-
> arch/arm64/kvm/hyp/nvhe/host.S | 13 +-
> arch/arm64/kvm/hyp/nvhe/hyp-init.S | 41 +-
> arch/arm64/kvm/hyp/nvhe/hyp-main.c | 294 +++--
> arch/arm64/kvm/hyp/nvhe/hyp.lds.S | 6 +
> arch/arm64/kvm/hyp/nvhe/mem_protect.c | 587 ++++++++-
> arch/arm64/kvm/hyp/nvhe/mm.c | 4 +-
> arch/arm64/kvm/hyp/nvhe/pkvm.c | 239 +++-
> arch/arm64/kvm/hyp/nvhe/psci-relay.c | 45 +-
> arch/arm64/kvm/hyp/nvhe/setup.c | 4 +-
> arch/arm64/kvm/hyp/nvhe/stacktrace.c | 6 +-
> arch/arm64/kvm/hyp/nvhe/switch.c | 23 +-
> arch/arm64/kvm/hyp/nvhe/sys_regs.c | 18 +-
> arch/arm64/kvm/hyp/nvhe/trace.c | 306 +++++
> arch/arm64/kvm/hyp/pgtable.c | 33 +-
> arch/arm64/kvm/hyp/vgic-v5-sr.c | 166 +++
> arch/arm64/kvm/hyp/vhe/Makefile | 2 +-
> arch/arm64/kvm/hyp_trace.c | 442 +++++++
> arch/arm64/kvm/hyp_trace.h | 11 +
> arch/arm64/kvm/mmu.c | 624 +++++----
> arch/arm64/kvm/nested.c | 11 +-
> arch/arm64/kvm/pkvm.c | 159 ++-
> arch/arm64/kvm/pmu-emul.c | 20 +-
> arch/arm64/kvm/ptdump.c | 79 +-
> arch/arm64/kvm/stacktrace.c | 8 +-
> arch/arm64/kvm/sys_regs.c | 188 ++-
> arch/arm64/kvm/vgic/vgic-init.c | 228 +++-
> arch/arm64/kvm/vgic/vgic-kvm-device.c | 107 +-
> arch/arm64/kvm/vgic/vgic-mmio.c | 40 +-
> arch/arm64/kvm/vgic/vgic-v3.c | 2 +-
> arch/arm64/kvm/vgic/vgic-v5.c | 499 ++++++-
> arch/arm64/kvm/vgic/vgic.c | 173 ++-
> arch/arm64/kvm/vgic/vgic.h | 53 +-
> arch/arm64/mm/fault.c | 33 +-
> arch/arm64/tools/sysreg | 480 +++++++
> drivers/irqchip/irq-gic-v5.c | 18 +
> drivers/virt/coco/pkvm-guest/Kconfig | 2 +-
> fs/tracefs/inode.c | 1 +
> include/kvm/arm_arch_timer.h | 8 +-
> include/kvm/arm_pmu.h | 5 +-
> include/kvm/arm_vgic.h | 191 ++-
> include/linux/irqchip/arm-gic-v5.h | 27 +
> include/linux/kvm_host.h | 1 +
> include/linux/ring_buffer.h | 58 +
> include/linux/ring_buffer_types.h | 41 +
> include/linux/simple_ring_buffer.h | 65 +
> include/linux/trace_remote.h | 48 +
> include/linux/trace_remote_event.h | 33 +
> include/trace/define_remote_events.h | 73 ++
> include/uapi/linux/kvm.h | 7 +
> include/uapi/linux/trace_mmap.h | 8 +-
> kernel/trace/Kconfig | 14 +
> kernel/trace/Makefile | 59 +
> kernel/trace/remote_test.c | 261 ++++
> kernel/trace/remote_test_events.h | 10 +
> kernel/trace/ring_buffer.c | 354 ++++-
> kernel/trace/simple_ring_buffer.c | 517 ++++++++
> kernel/trace/trace.c | 4 +-
> kernel/trace/trace.h | 7 +
> kernel/trace/trace_remote.c | 1384 ++++++++++++++++++++
> tools/arch/arm64/include/uapi/asm/kvm.h | 1 +
> tools/include/uapi/linux/kvm.h | 2 +
> .../selftests/ftrace/test.d/remotes/buffer_size.tc | 25 +
> .../selftests/ftrace/test.d/remotes/functions | 99 ++
> .../selftests/ftrace/test.d/remotes/hotplug.tc | 88 ++
> .../test.d/remotes/hypervisor/buffer_size.tc | 11 +
> .../ftrace/test.d/remotes/hypervisor/hotplug.tc | 11 +
> .../ftrace/test.d/remotes/hypervisor/reset.tc | 11 +
> .../ftrace/test.d/remotes/hypervisor/trace.tc | 11 +
> .../ftrace/test.d/remotes/hypervisor/trace_pipe.tc | 11 +
> .../ftrace/test.d/remotes/hypervisor/unloading.tc | 11 +
> .../selftests/ftrace/test.d/remotes/reset.tc | 90 ++
> .../selftests/ftrace/test.d/remotes/trace.tc | 102 ++
> .../selftests/ftrace/test.d/remotes/trace_pipe.tc | 102 ++
> .../selftests/ftrace/test.d/remotes/unloading.tc | 41 +
> tools/testing/selftests/kvm/Makefile.kvm | 3 +-
> tools/testing/selftests/kvm/arm64/at.c | 14 +-
> tools/testing/selftests/kvm/arm64/no-vgic-v3.c | 177 ---
> tools/testing/selftests/kvm/arm64/no-vgic.c | 297 +++++
> tools/testing/selftests/kvm/arm64/set_id_regs.c | 52 +-
> tools/testing/selftests/kvm/arm64/vgic_v5.c | 228 ++++
> tools/testing/selftests/kvm/include/arm64/gic_v5.h | 150 +++
> 129 files changed, 10017 insertions(+), 1086 deletions(-)
> create mode 100644 Documentation/trace/remotes.rst
> create mode 100644 Documentation/virt/kvm/arm/pkvm.rst
> create mode 100644 Documentation/virt/kvm/devices/arm-vgic-v5.rst
> create mode 100644 arch/arm64/include/asm/kvm_define_hypevents.h
> create mode 100644 arch/arm64/include/asm/kvm_hypevents.h
> create mode 100644 arch/arm64/include/asm/kvm_hyptrace.h
> create mode 100644 arch/arm64/kvm/hyp/include/nvhe/arm-smccc.h
> create mode 100644 arch/arm64/kvm/hyp/include/nvhe/clock.h
> create mode 100644 arch/arm64/kvm/hyp/include/nvhe/define_events.h
> create mode 100644 arch/arm64/kvm/hyp/include/nvhe/trace.h
> create mode 100644 arch/arm64/kvm/hyp/nvhe/clock.c
> create mode 100644 arch/arm64/kvm/hyp/nvhe/events.c
> create mode 100644 arch/arm64/kvm/hyp/nvhe/trace.c
> create mode 100644 arch/arm64/kvm/hyp/vgic-v5-sr.c
> create mode 100644 arch/arm64/kvm/hyp_trace.c
> create mode 100644 arch/arm64/kvm/hyp_trace.h
> create mode 100644 include/linux/ring_buffer_types.h
> create mode 100644 include/linux/simple_ring_buffer.h
> create mode 100644 include/linux/trace_remote.h
> create mode 100644 include/linux/trace_remote_event.h
> create mode 100644 include/trace/define_remote_events.h
> create mode 100644 kernel/trace/remote_test.c
> create mode 100644 kernel/trace/remote_test_events.h
> create mode 100644 kernel/trace/simple_ring_buffer.c
> create mode 100644 kernel/trace/trace_remote.c
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/buffer_size.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/functions
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hotplug.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hypervisor/buffer_size.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hypervisor/hotplug.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hypervisor/reset.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hypervisor/trace.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hypervisor/trace_pipe.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/hypervisor/unloading.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/reset.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/trace.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/trace_pipe.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/remotes/unloading.tc
> delete mode 100644 tools/testing/selftests/kvm/arm64/no-vgic-v3.c
> create mode 100644 tools/testing/selftests/kvm/arm64/no-vgic.c
> create mode 100644 tools/testing/selftests/kvm/arm64/vgic_v5.c
> create mode 100644 tools/testing/selftests/kvm/include/arm64/gic_v5.h
>
More information about the linux-arm-kernel
mailing list