[RFC 0/6] KVM: arm64: Add support for virt TLBID

Jinqian Yang yangjinqian1 at huawei.com
Thu Oct 29 23:56:11 PDT 2026


Hi,

This series adds virtual TLBID (vTLBID) support for KVM guests, built
on top of Kristina's TLBID domains RFC [1]. It lets a guest use TLBI
domains of its own, translated by KVM into physical domains via the
VTLBIDn_EL2 registers, so guest TLBIs only reach the physical CPUs
where the guest's vCPUs actually run.

The series adds:

 - KVM_CAP_ARM_TLBIDOMAIN plus two ioctls to configure each vCPU's
   vDomain membership;
 - programming of VTLBIDn_EL2 at vCPU load/put, mapping vDomains to
   the smallest physical domain covering the vCPUs in them;
 - a guest-visible TLBIDIDR_EL1 with virtual domain counts, and
   conditional exposure of ID_AA64MMFR4_EL1.TLBID once userspace
   configures vDomains;
 - tracepoints for the vDomain load path.

Known limitations:

 - VHE only: VTLBIDn_EL2 cannot be written from EL1, so vTLBID is
   disabled on nVHE hosts.
 - No interaction with nested virtualization is modelled yet.
 - The guest is told about OS domains (NOS), but VTLBIDOSn_EL2 is
   never programmed, so outer-shareable domain TLBIs are broadcast.

[1] https://lore.kernel.org/all/20261001110655.461473-1-kristina.martsenko@arm.com/

Jinqian Yang (6):
  KVM: arm64: Introduce TLBID virtualization infrastructure
  KVM: arm64: Add VTLBID sysregs and update VTLBID(n) on vCPU load
  KVM: arm64: Wire up TLBID vDomain configuration ioctls
  KVM: arm64: Emulate TLBIDIDR_EL1 with virtual domain counts
  KVM: arm64: Conditionally expose ID_AA64MMFR4_EL1.TLBID to guest
  KVM: arm64: Add tracepoints for TLBID vDomain load events



More information about the linux-arm-kernel mailing list