Protected KVM on Arm64: A Technical Deep Dive
summary
Extension of KVM/arm64 that implements confidential computing on Arm v8.0+ CPUs without extra HW by enabling stage-2 MMU enabled for host so EL2 enforces host access control. Kernel donates memory via host-to-hypervisor donation and hypervisor tracks ownership with page-owner bits in host stage-2 PTEs, uses hypercalls for guest create/load/run and long‑term GPA pins to avoid migration. Faults targeting donated pages get reinjected to the host; teardown poisons and reclaims pages. Missing features include dirty logging, huge pages and device assignment.
AI-written summary · about
chapters (14)
- 0:00Start
- 7:37Booting the device
- 11:40Page ownership tracking
- 14:12Page conversions
- 15:41Creating a guest
- 18:20EL2 infrastructure
- 22:40Exit handling
- 23:27Instruction and data aborts
- 26:39Share hypercalls from guests
- 27:34Notes on guest firmware loading
- 28:46Handling of host stage-2 faults
- 31:32Stage-2 fault taken from EL1
- 35:24Guest teardown
- 37:40Limitations of current patch series
related talks
38mUnveiling Arm Confidential Computing Architecture Software Stack
38mUnmapped Private Memory for Confidential Guests
18mGuest Memory Protection -- Current Status and Future
28mConfidential Devices (TEE I/O): A series of modest proposals
39mHeki: Hypervisor-Enforced Kernel Integrity for Linux with KVM
20mUnmapped Private Memory for Confidential Guests
26mArm64 Linux Kernel Architecture update
30mKernel Hardening With Protection Keys
