我试图在虚拟机中运行Alex的WinIPT接口,但没有成功。(这是运行Windows10VM的Windows10Pro主机,两者都是18363更新)
我已经成功地在主机上构建并运行了Intel的驱动程序以及Alex的工具链,并使用ptxed处理了跟踪。我还运行了英特尔的丘比特实用程序,并验证了INTEL_PROCESSOR_TRACE功能在主机上是活动的。但是,当我在VM中运行该实用程序时,它不会显示INTEL_PROCESSOR_TRACE标志,实际上,驱动程序返回一个未启用该特性的错误。
我尝试在几个不同的虚拟环境中运行相同的设置,包括最新版本的VirtualBox、VMWare工作站和Hyper-V。
当我启用Hyper平台时,它会在主机上静默地禁用INTEL_PROCESSOR_TRACE功能。
VMWare工作站不会直接禁用它,但是当我尝试在启动VM后再次在主机上运行跟踪工具时,它抛出了一个BSoD,所以我对它没有很高的期望。
VirtualBox至少没有删除任何功能,但是即使我启用了VT-xpass身选项,它仍然没有设置标志来启用IPT。
据Microsoft称,理论上存在一个在Hyper-V中启用此功能的进程,尽管我遇到了上述问题,最终在我的主机上禁用了该进程:
有人成功了吗?我更喜欢当前环境中的解决方案(Windows主机上的Windows ),但我希望能在Linux上使用perf或任何其他方法。我还发现了一些2017年以来的帖子和问题,表明IPT没有得到支持,但在过去的一年里没有任何支持。技术和体系结构似乎还在不断发展,所以我真的很想知道是否有人以任何形式取得了成功,以及对该做什么或避免什么的洞察力。
其他资源:
英特尔处理器跟踪的背景:处理器跟踪
编辑添加(2/10/2020)
仔细查看微软的说明时,他们提到您需要“一个支持IPT和PT2GPA特性的英特尔处理器”才能在虚拟机中启用IPT。据英特尔,他们列出的唯一支持PT2GPA的架构是冰湖。
我目前正在使用的计算机正在运行一个早期的微体系结构(Coffee ),这可能解释了我所看到的在主机上IPT很好的行为。有人能确认他们让它在最新的处理器上工作吗?
发布于 2020-03-26 06:58:53
看看"Intel 64和IA-32架构软件开发人员手册“,从”第35章英特尔处理器跟踪“开始。IPT CPU特性确实支持虚拟机管理程序类型1(硬件),但它在VM中的操作方式似乎有一些限制。
顺便提一句,我和VMWare的一位代表谈了一开始在电话上缺乏IPT支持的问题,他没有给出任何结论性的回应,也没有通过电子邮件回复我。在VMWare论坛上只有一两篇关于这个主题的论坛文章。似乎有一些标志来设置支持,但没有一个为我工作。快看,它可能不会很快就来。
到2020年,我们可能都在同一条船上。如果我们想要在一个商业VM选项中得到支持,我们必须不断询问。也许,如果有足够的要求,他们将看到这是一个商业上可行的功能添加。
和/或对完成任务的任何人,在VirtualBox或其他开源解决方案中添加对它的支持。
编辑:显然至少对于Linux,KVM现在有IPT支持。
发布于 2022-02-08 06:06:17
在我的例子中,WinIPT和我使用libipt的实现在Hyper(主机和客户都运行Windows1021H1)中工作得很好。
然而,对于超级V客户机,PT缓冲区大小减少到2MB,而在我的Xeon 6136 CPU中,缓冲区大小为10 my。
https://stackoverflow.com/questions/60121277
复制相似问题