Xen 如何处理用户 space 代码中的非虚拟化指令?

How does Xen handle non-virtualizable instructions in user space code?

Xen 必须在 Guest OS 内核代码中处理

但是如果我的 user-space 代码包含这样的指令(例如,将 GDT 信息存储到内存中的 SGDT)怎么办?我的代码能否在具有 Xen 准虚拟化的来宾 VM 中顺利运行?它会泄露主机的 GDT 信息(从而引起一些关注)吗?

此外,谁能告诉我 code/details 来宾内核中的 SGDT(和其他非虚拟化指令)是如何处理的?

https://xenbits.xen.org/docs/xtf/test-umip.html

似乎这确实是一个漏洞,直到新的 CPU 功能:

用户模式指令保护 (UMIP) 是新英特尔处理器中的一项功能。

激活时,它会导致 SGDT、SIDT、SLDT、STR 和 SMSW 指令在 CPL > 0 的情况下执行时产生#GP。这会阻止用户空间应用程序获取敏感的操作系统信息。

============================================= ====================

安全社区的人似乎很重视这个问题: On the Cutting Edge: Thwarting Virtual Machine Detection, 2006