произошло, когда VMExit на хост. Чтобы быть более конкретным, я хочу выяснить, как perf в хосте может посчитать «выполненную инструкцию» в гостевой системе. (Я добавлю printk, чтобы попытаться выяснить магию). Я голосовал за ваши ответы.
ользуюKVM-QEMU на платформе Intel. И мне интересно, как этоPMC / ЦУП будучи виртуализированным вKVM?
Мое понимание vPMC заключается в следующем.
Поскольку PMU является общим физическим ресурсом, гипервизор должен сохранять / восстанавливать контекстные конфигурации и счетчики PMC во время VMExit / VMEnter.
Но в моем тестировании я запутался.
(In my host Linux, the MSR of IA32_PERF_FIXed_CTRL is set to 0xb0)
Прежде всего, в запущенной ВМ,
I 'wrmsr IA32_PERF_FIXed_CTRL 0x0b
', включитьFIXed_CTR0
в вм. Затем я зарегистрировал MSR для IA32_PERF_FIXed_CTRL на VMExit и обнаружил, что FIXed_CTR0 не включен.
Я думаю, это потому, что когда происходит VMExit, он уже находится в контексте хоста, поэтому MSR для IA32_PERF_FIXed_CTRL - это хост, а не хост.
Но вопрос в том, где находится MSR для виртуальной машины, сохраняемой в хосте, и когда и где MSR виртуальной машины восстанавливается в CPU во время VMEnter ???
Надеюсь, мой вопрос понятен.
Спасибо,