我正在尝试在kvm中使用vmfunc指令。
Intel支持vmfunc指令以非root模式切换ept指针。
,并已尝试在kvm中使用此指令。 a patchwork
这已在guest虚拟机中使用以下代码进行了测试:
#define VMX_VMFUNC ".byte 0x0f,0x01,0xd4"
static void vmfunc(unsigned int nr, unsigned int ept)
{
asm volatile(VMX_VMFUNC
:
: "a"(nr), "c"(ept)
: "memory");
}
此测试仅将所有512个条目填入相同的内容。
如果仅切换到另一个虚拟机的ept指针,将会发生什么? 它似乎无法工作,不仅是rsp和rip。我以为这只是硬件问题。
kvm应该管理两个不同的EPT吗?