¿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,

Respuestas a la pregunta(1)

Su respuesta a la pregunta