EPK: Scalable and Efficient Memory Protection Keys
summary
EPK extends Intel MPK’s 16-domain limit to hundreds by combining MPK with hardware virtualization (EPT + VMFUNC) so each domain is a pair of PK + EPT index, letting the same PK serve different domains in different EPTs. It requires no hardware changes, provides user-level domain switches via WRPKRU and VMFUNC for cross‑EPT transitions, and scales to hundreds of domains while matching ~95% of native performance, outperforming libmpk by up to 100× and speeding microkernel IPCs up to 9× (≈66% over SkyBridge).
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:34Memory Protection Key (MPK)
- 2:12Common Usage Model
- 3:10The Limitation of MPK
- 4:26Candidate Solution 1
- 7:48A Quick Intro of VMFUNC
- 8:35Basic Design of EPK
- 11:52Challenges
- 12:42Evaluation Setup
- 13:23Case-Study: Intra-Process Isolation
- 14:30Case-Study: Memory Data Isolation
- 15:30Case-Study: Boosting IPCs
- 18:35Conclusion
related talks
20mlibmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK)
50mMPK/PKS Linux Kernel Compartmentalization
30mKernel Hardening With Protection Keys
20mLimitations and Opportunities of Modern Hardware Isolation Mechanisms
18mGuest Memory Protection -- Current Status and Future
16mUsing PMP, ePMP and Rust to Protect Embedded Kernels, Even from Themselves
41mHypervisor-Enforced Kernel Integrity (Heki) for KVM
14mScalable Memory Protection in the PENGLAI Enclave
