public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Alexandru Elisei <alexandru.elisei@arm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>,
	James Clark <james.clark@linaro.org>,
	Joey Gouly <joey.gouly@arm.com>, John Stultz <jstultz@google.com>,
	Jonathan Cameron <jonathan.cameron@huawei.com>,
	Kalesh Singh <kaleshsingh@google.com>, Leo Yan <leo.yan@arm.com>,
	Mark Brown <broonie@kernel.org>,
	Mostafa Saleh <smostafa@google.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Oliver Upton <oupton@kernel.org>,
	Quentin Perret <qperret@google.com>,
	Sascha Bischoff <sascha.bischoff@arm.com>,
	Sebastian Ene <sebastianene@google.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Vincent Donnefort <vdonnefort@google.com>,
	Wei-Lin Chang <weilin.chang@arm.com>,
	Will Deacon <will@kernel.org>, Zenghui Yu <yuzenghui@huawei.com>,
	kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	kvm@vger.kernel.org
Subject: [GIT PULL] KVM/arm64 updates for 7.1
Date: Wed,  8 Apr 2026 16:55:09 +0100	[thread overview]
Message-ID: <20260408155509.548103-1-maz@kernel.org> (raw)

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).

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

                 reply	other threads:[~2026-04-08 15:55 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260408155509.548103-1-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=alexandru.elisei@arm.com \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=james.clark@linaro.org \
    --cc=joey.gouly@arm.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=jstultz@google.com \
    --cc=kaleshsingh@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=leo.yan@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=nathan@kernel.org \
    --cc=oupton@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=qperret@google.com \
    --cc=rostedt@goodmis.org \
    --cc=sascha.bischoff@arm.com \
    --cc=sebastianene@google.com \
    --cc=smostafa@google.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tabba@google.com \
    --cc=vdonnefort@google.com \
    --cc=weilin.chang@arm.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox