¿Cómo KVM virtualiza el contador de rendimiento (PMC)?
estoy usandoKVM-QEMU en la plataforma Intel. Y me pregunto cómo es elPMC / PMU siendo virtualizado enKVM?
Mi comprensión de vPMC es la siguiente.
Como PMU es un recurso físico compartido, el hipervisor debe guardar / restaurar las configuraciones y contadores de PMC durante VMExit / VMEnter.
Pero en mis pruebas, me confundí.
(In my host Linux, the MSR of IA32_PERF_FIXed_CTRL is set to 0xb0)
En primer lugar, en una VM lanzada,
I 'wrmsr IA32_PERF_FIXed_CTRL 0x0b
', para permitirFIXed_CTR0
en VM. Luego, registré el MSR de IA32_PERF_FIXed_CTRL en VMExit, y encontré que FIXed_CTR0 no está habilitado.
Creo que es porque cuando VMExit ocurre, ya está en el contexto del host, por lo que el MSR de IA32_PERF_FIXed_CTRL es el del host, no el host.
Pero la pregunta es ¿dónde se guarda ese MSR para la VM en el host, y cuándo y dónde se restaura el MSR de la VM en la CPU durante VMEnter?
Espero que mi pregunta sea clara.
Gracias,