一句话:提出 ELISA,用 EPT 隔离与 VMFUNC 切换实现虚拟机间低开销共享内存对象。
论文研究虚拟机间共享内存对象的隔离与性能权衡:直接把共享内存暴露给 guest 虽快但缺乏隔离,而依赖 VM exit 的宿主介入开销高。作者提出 ELISA,利用扩展页表(EPT)分离来隔离共享对象,并让 guest 通过 Intel VMFUNC 指令切换 EPT 上下文,从而以无退出方式访问共享对象。实验表明,ELISA 的开销比基于 VMCALL 的宿主介入小 3.5 倍;在 VM 网络系统和内存键值存储两个用例中,以 ELISA 替代 VMCALL 后性能分别提升 163% 和 64%。
This paper explores Exit-Less, Isolated, and Shared Access (ELISA), a novel in-memory object sharing scheme for Virtual Machines (VMs). ELISA has the isolation advantage over the shared memory directly exposed to guest VMs while its overhead is smaller than that of host-interposition relying on the costly exit from the VM context. In a nutshell, ELISA isolates shared in-memory objects by Extended Page Table (EPT) separation, and a guest VM accesses them by switching the EPT context using VMFUNC, a low-overhead CPU instruction of Intel CPUs. Our experiment shows that the overhead of ELISA is 3.5 times smaller than that of VMCALL-oriented host-interposition. We demonstrate the benefits of ELISA through two use cases; by replacing VMCALL with ELISA, a VM networking system and an in-memory key-value store exhibit 163% and 64% higher performance respectively.