Я пытаюсь запустить интерфейс WinIPT Алекса Ионеску на виртуальной машине, но безуспешно. (Это хост Windows 10 Pro, на котором запущена виртуальная машина Windows 10, и оба являются обновлением 18363)
Я успешно собрал и запустил драйвер Intel, а также набор инструментов Alex на хосте и обработал трассировку с помощью ptxed. Я также запустил утилиту Intel cpuid и убедился, что функция INTEL_PROCESSOR_TRACE активна на хосте. Однако, когда я запускаю утилиту на виртуальной машине, она не отображает флаг INTEL_PROCESSOR_TRACE, и действительно, драйвер возвращает ошибку о том, что функция не включена.
Я пытался запустить одну и ту же настройку в нескольких разных виртуальных средах, включая последние версии VirtualBox, VMWare Workstation и Hyper-V.
Когда я включаю платформу Hyper-V, она автоматически отключает функцию INTEL_PROCESSOR_TRACE на хосте.
VMWare Workstation не отключает его напрямую, но когда я попытался снова запустить свой инструмент трассировки на хосте после запуска виртуальной машины, он выдал BSoD, поэтому я не возлагаю на него больших надежд.
VirtualBox, по крайней мере, не лишил меня каких-либо функций, но даже когда я включил опцию сквозной передачи VT-x, у него все еще не был установлен флаг для включения IPT.
Согласно Microsoft, теоретически существует процесс включения этого в Hyper-V, хотя я сталкиваюсь с вышеупомянутой проблемой, когда он отключается на моем хосте:
Включение компонентов мониторинга производительности в виртуальная машина
Кто-нибудь заставил это работать? Я бы предпочел решение в моей текущей среде (виртуальная машина Windows на хосте Windows), но я был бы признателен за любые идеи с использованием производительности в Linux или любых других подходов. Я также нашел несколько сообщений и вопросов от 2017 года, указывающих на то, что IPT «пока» не поддерживается, но ничего в течение последнего года или около того. Технология и архитектура, похоже, все еще развиваются, поэтому на самом деле я хотел бы знать, добился ли кто-нибудь успеха в какой-либо форме, а также какие-либо идеи о том, что делать, а чего избегать.
Другие источники:
Справочная информация о трассировке процессоров Intel: Трассировка процессоров
Отредактировано для добавления (10.02.2020)
При более внимательном рассмотрении инструкций Microsoft упоминается, что для включения IPT на виртуальной машине требуется «процессор Intel, поддерживающий IPT и функцию PT2GPA». По данным Intel, единственной архитектурой, которая указана как поддерживающая PT2GPA, является Ice Lake.
Компьютер, с которым я сейчас работаю, работает под управлением более ранней микроархитектуры (Coffee Lake), что может объяснить поведение, которое я наблюдаю, когда IPT в порядке на хосте. Кто-нибудь может подтвердить, что он работает на более позднем процессоре?