Detección de características e interfaces

En esta sección se describe cómo el software invitado detecta la presencia de un hipervisor y consulta sus funcionalidades, características e información de versión mediante mecanismos de detección específicos de la arquitectura.

Detección de características e interfaces (x64)

El software invitado interactúa con el hipervisor a través de una variedad de mecanismos. Muchos de estos reflejan los mecanismos tradicionales utilizados por el software para interactuar con el procesador subyacente. Por lo tanto, estos mecanismos son específicos de la arquitectura. En la arquitectura x64, se usan los siguientes mecanismos:

  • Instrucción CPUID: se usa para la información estática de características y versiones.
  • MSR (registros específicos del modelo): se usa para los valores de estado y control.
  • Registros asignados a memoria: se usa para los valores de estado y control.
  • Interrupciones del procesador: se usa para eventos asincrónicos, notificaciones y mensajes.

Además de estas interfaces específicas de la arquitectura, el hipervisor proporciona una interfaz de procedimientos sencilla implementada con hiperllamadas.

Detección de hipervisores

Antes de usar cualquier interfaz de hipervisor, el software debe determinar primero si se ejecuta dentro de un entorno virtualizado. En plataformas x64 que se ajustan a esta especificación, esto se realiza ejecutando la instrucción CPUID con un valor de entrada (EAX) de 1. Tras la ejecución, el código debe comprobar el bit 31 del registro ECX (el "hipervisor presente bit"). Si se establece este bit, hay un hipervisor presente. En un entorno no virtualizado, el bit estará claro.

CPUID.01h.ECX:31 // if set, virtualization present

Si se establece el "bit presente del hipervisor", se pueden consultar hojas adicionales de CPUID para obtener más información sobre el hipervisor conforme y sus funcionalidades. Se garantiza que dos hojas de este tipo están disponibles: 0x40000000 y 0x40000001. Las hojas numeradas posteriormente también pueden estar disponibles.

Hojas de CPUID del hipervisor estándar

Cuando se consulta la hoja en 0x40000000 , el hipervisor devolverá información que proporciona el número de hoja de CPUID máximo del hipervisor y una firma de identificador de proveedor.

Register Información proporcionada
EAX Valor de entrada máximo para la información de CPUID del hipervisor
EBX Firma de identificador de proveedor de hipervisor
ECX Firma de identificador de proveedor de hipervisor
EDX Firma de identificador de proveedor de hipervisor

Si se consulta la hoja en 0x40000001 , devolverá un valor que representa una identificación de la interfaz de hipervisor neutral del proveedor. Esto determina la semántica de las hojas de a través 0x4000002de 0x400000FF .

Register Información proporcionada
EAX Firma de interfaz de hipervisor.
EBX Reservado
ECX Reservado
EDX Reservado

Estas dos hojas permiten al invitado consultar el identificador del proveedor del hipervisor e interfaz de forma independiente. El identificador del proveedor solo se proporciona con fines informativos y de diagnóstico. Se recomienda que el software solo base las decisiones de compatibilidad en la firma de interfaz notificadas a través de la hoja 0x40000001.

Hojas de CPUID del hipervisor de Microsoft

En los hipervisores que se ajustan a la interfaz CPUID del hipervisor de Microsoft, los 0x40000000 registros hoja y 0x40000001 tendrán los valores siguientes.

Intervalo hoja de CPUID del hipervisor: 0x40000000

EAX determina la hoja de CPUID máxima del hipervisor. EBX-EDX contienen la firma del identificador de proveedor del hipervisor. La firma del identificador de proveedor solo debe usarse con fines de informes y diagnóstico.

Register Información proporcionada
EAX Valor de entrada máximo para la información de CPUID del hipervisor. En hipervisores de Microsoft, será al menos 0x40000005.
EBX 0x7263694D: "Micr"
ECX 0x666F736F: "osof"
EDX 0x76482074: "t Hv"

Identificación de la interfaz neutral del proveedor del hipervisor: 0x40000001

EAX contiene la firma de identificación de la interfaz del hipervisor. Esto determina la semántica de las hojas de a través 0x40000002de 0x400000FF .

Register Información proporcionada
EAX 0x31237648: "Hv#1"
EBX Reservado
ECX Reservado
EDX Reservado

Los hipervisores que se ajustan a la interfaz "Hv#1" también proporcionan al menos las hojas siguientes.

Identidad del sistema de hipervisor: 0x40000002

Register bits Información proporcionada
EAX Número de compilación
EBX 31-16 Versión Principal
15-0 Versión Menor

Identificación de características de hipervisor: 0x40000003

EAX y EBX indican qué características están disponibles para la partición en función de los privilegios de partición actuales.

Register bits Información proporcionada
EAX Corresponde a bits 31-0 de HV_PARTITION_PRIVILEGE_MASK
EBX Corresponde a bits de 63 a 32 de HV_PARTITION_PRIVILEGE_MASK
ECX 4-0 Reservado
5 Mperf invariable está disponible
6 La pila de sombras del supervisor está disponible
7 La PMU arquitectónica está disponible
8 La interceptación de captura de excepciones está disponible
31-9 Reservado
EDX 0 En desuso (anteriormente indicado la disponibilidad de la instrucción MWAIT)
1 La compatibilidad con la depuración de invitados está disponible
2 La compatibilidad con el Monitor de rendimiento está disponible
3 La compatibilidad con eventos de creación de particiones dinámicas de CPU física está disponible
4 La compatibilidad con el paso del bloque de parámetros de entrada de hiperllamada a través de registros XMM está disponible.
5 La compatibilidad con un estado de inactividad de invitado virtual está disponible
6 La compatibilidad con el estado de suspensión del hipervisor está disponible
7 La compatibilidad con la consulta de distancias NUMA está disponible
8 La compatibilidad con la determinación de frecuencias del temporizador está disponible
9 La compatibilidad con la inserción de comprobaciones de máquinas sintéticas está disponible
10 La compatibilidad con MSR de bloqueo de invitado está disponible
11 La compatibilidad con MSR de depuración está disponible
12 La compatibilidad con NPIEP está disponible
13 DisableHypervisorAvailable
14 ExtendedGvaRangesForFlushVirtualAddressListAvailable
15 La compatibilidad con la devolución de la salida de hiperllamada a través de registros XMM está disponible
16 Reservado
17 SintPollingModeAvailable
18 HypercallMsrLockAvailable
19 Uso de temporizadores sintéticos directos
20 Compatibilidad con el registro pat disponible para VSM
Veintiuno Compatibilidad con el registro de bndcfgs disponible para VSM
22 Reservado
23 Compatibilidad con temporizadores sintéticos sin inhalar disponibles
25-24 Reservado
26 Característica de último registro de rama (LBR) de Intel compatible
31-27 Reservado

Recomendaciones de implementación: 0x40000004

Indica los comportamientos que el hipervisor recomienda que el sistema operativo implemente para obtener un rendimiento óptimo.

Register bits Información proporcionada
EAX 0 Se recomienda usar hypercall para conmutadores de espacio de direcciones en lugar de MOV a instrucción CR3.
1 Se recomienda usar hypercall para vaciados de TLB locales en lugar de instrucciones INVLPG o MOV a CR3.
2 Se recomienda usar hypercall para vaciados de TLB remotos en lugar de interrupciones entre procesadores.
3 Se recomienda usar MSR para acceder a los registros de APIC EOI, ICR y TPR en lugar de sus homólogos asignados a memoria.
4 Se recomienda usar el MSR proporcionado por el hipervisor para iniciar un RESET del sistema.
5 Se recomienda usar el tiempo relajado para esta partición. Si se usa, la máquina virtual debe deshabilitar los tiempos de espera del guardián que dependen de la entrega oportuna de interrupciones externas.
6 Se recomienda usar la reasignación de DMA.
7 Se recomienda usar la reasignación de interrupciones.
8 Reservado.
9 Se recomienda dejar de usar AutoEOI.
10 Se recomienda usar hypercall syntheticClusterIpi.
11 Se recomienda usar la interfaz ExProcessorMasks más reciente.
12 Indica que el hipervisor está anidado dentro de una partición de Hyper-V.
13 Se recomienda usar INT para llamadas del sistema MBEC.
14 Se recomienda un hipervisor anidado mediante la interfaz vmCS habilitada. También indica que las iluminaciones anidadas adicionales pueden estar disponibles (consulte 0x4000000A hoja).
15 UseSyncedTimeline: indica que la partición debe consumir el sesgo QueryPerformanceCounter proporcionado por la partición raíz.
16 Reservado
17 UseDirectLocalFlushEntire: indica que el invitado debe alternar CR4. PGE para vaciar todo el TLB, ya que esto es más eficaz que hacer una hiperllamada.
18 NoNonArchitecturalCoreSharing: indica que no es posible compartir núcleos. Esto se puede usar como una optimización para evitar la sobrecarga de rendimiento de STIBP.
31-19 Reservado
EBX Número recomendado de intentos de reintentar un error de bloqueo por subproceso antes de notificar al hipervisor sobre los errores. 0xFFFFFFFF indica que nunca se notifica.
ECX 6-0 ImplementedPhysicalAddressBits: informa del ancho de dirección física (MAXPHYADDR) notificado por los procesadores físicos del sistema. Si todos los bits contienen 0, no se admite la característica. Tenga en cuenta que el valor notificado es el número real de bits de dirección física y no la posición de bits utilizada para representar ese número.
31-7 Reservado
EDX Reservado

Límites de implementación del hipervisor: 0x40000005

Describe los límites de escala admitidos en la implementación actual del hipervisor. Si algún valor es cero, el hipervisor no expone la información correspondiente; de lo contrario, tienen estos significados.

Register Información proporcionada
EAX Número máximo de procesadores virtuales admitidos
EBX Número máximo de procesadores lógicos admitidos
ECX El número máximo de vectores de interrupción físicos disponibles para la reasignación de interrupciones.
EDX Reservado

Características de hardware de implementación: 0x40000006

Indica qué características específicas del hardware se han detectado y están actualmente en uso por el hipervisor.

Register bits Información proporcionada
EAX 0 La compatibilidad con la asistencia de superposición de APIC se detecta y está en uso.
1 Se detecta y usa la compatibilidad con mapas de bits de MSR.
2 Se detecta y usa compatibilidad con contadores de rendimiento arquitectónicos.
3 La compatibilidad con la traducción de direcciones de segundo nivel se detecta y está en uso.
4 La compatibilidad con la reasignación de DMA se detecta y se usa.
5 Se detecta la compatibilidad con la reasignación de interrupciones y en uso.
6 Indica que hay una limpieza de patrulla de memoria en el hardware.
7 La protección contra DMA está en uso.
8 Se solicita HPET.
9 Los temporizadores sintéticos son volátiles.
13-10 Nivel de hipervisor del invitado actual: "0" si no está anidado.
14 Modo de destino físico necesario.
15 Use VMFUNC para el modificador de mapa de alias.
16 La compatibilidad con la creación de ceros de memoria de hardware está presente.
17 La compatibilidad con invitado no restringido está presente.
18 La compatibilidad con la asignación de recursos (RDT-A, PQOS-A) está presente.
19 La compatibilidad con la supervisión de recursos (RDT-M, PQOS-M) está presente.
20 La compatibilidad con la PMU virtual invitada está presente.
Veintiuno La compatibilidad con LBR virtual invitado está presente.
22 La compatibilidad con IPT virtual invitado está presente.
23 La compatibilidad con la emulación de APIC está presente.
veinticuatro El hipervisor detecta y usa la tabla WDAT ACPI.
31-25 Reservado
EBX Reservado
ECX Reservado
EDX Reservado

Identificación de características de hipervisor anidadas: 0x40000009

Describe las características expuestas a la partición por el hipervisor al ejecutar anidadas. EAX describe el acceso a las MSR virtuales. EDX describe el acceso a las hiperllamadas.

Register bits Información proporcionada
EAX 1-0 Reservado
2 AccessSynicRegs
3 Reservado
4 AccessIntrCtrlRegs
5 AccessHypercallMsrs
6 AccessVpIndex
11-7 Reservado
12 AccessReenlightenmentControls
31-13 Reservado
EBX Reservado
ECX Reservado
EDX 3-0 Reservado
4 XmmRegistersForFastHypercallAvailable
14-5 Reservado
15 FastHypercallOutputAvailable
16 Reservado
17 SintPollingModeAvailable
31-18 Reservado

Características de virtualización anidada del hipervisor: 0x4000000A

Indica qué optimizaciones de virtualización anidadas están disponibles para un hipervisor anidado.

Register bits Información proporcionada
EAX 7-0 Versión habilitada de VMCS (baja)
15-8 Versión habilitada de VMCS (alta)
16 Reservado
17 Indica compatibilidad con hiperllamadas de vaciado virtual directo.
18 Indica compatibilidad con las hiperllamadas HvCallFlushGuestPhysicalAddressSpace y HvCallFlushGuestPhysicalAddressList (en plataformas x64).
19 Indica la compatibilidad con el uso de un mapa de bits de MSR optimizado.
20 Indica la compatibilidad con la combinación de excepciones de virtualización en la clase de excepción de error de página.
Veintiuno Indica la compatibilidad con el valor distinto de cero del campo 0x00002802 (GuestIa32DebugCtl) en VMCS.
22 Indica compatibilidad con el TLB optimizado en plataformas AMD. Los vaciados de ASID no afectan a las entradas de TLB derivadas del TPS. Las hiperllamadas deben usarse para invalidar las entradas TLB de HYPER-AND. También indica compatibilidad con las hiperllamadas HvCallFlushGuestPhysicalAddressSpace y HvCallFlushGuestPhysicalAddressList.
31-21 Reservado
EBX 0 Indica la compatibilidad con los campos GuestPerfGlobalCtrl y HostPerfGlobalCtrl en vmCS habilitadas.
31-1 Reservado
ECX Reservado
EDX Reservado

Versionamiento

La información de la versión del hipervisor está codificada en hoja 0x40000002. Se proporcionan dos números de versión: la versión principal y la versión del servicio.

La versión principal incluye un número de versión principal y secundaria y un número de compilación. Estos corresponden a los números de versión de Microsoft Windows. La versión del servicio describe los cambios realizados en la versión principal.

Se recomienda encarecidamente que los clientes comprueben las características del hipervisor mediante el uso de hojas 0x40000003 de CPUID en 0x40000005 lugar de comparar con intervalos de versiones.

Detección de características e interfaz (ARM64)

En la arquitectura ARM64, se usan los siguientes mecanismos para la detección de características e interfaces:

  • Consultas HvRegister a través de HvCallGetVpRegisters : se usa para la información estática de características y versiones.
  • Registros asignados a memoria: se usa para los valores de estado y control.

Además de estas interfaces específicas de la arquitectura, el hipervisor proporciona una interfaz de procedimientos sencilla implementada con hiperllamadas.

Detección de hipervisores

Antes de usar la mayoría de las interfaces del hipervisor, el software debe determinar primero si se ejecuta dentro de un entorno virtualizado.

En ARM64, el software invitado puede detectar el hipervisor mediante la interfaz estándar SMCCC (Convención de llamada de SMC). La detección se realiza mediante la instrucción HVC o SMC con el identificador 0xC600FF0 de función en X0 (esto corresponde a una llamada de hipervisor específica del proveedor de 64 bits, VENDOR_HYP_FUNCTION_CODE_UID). La llamada sigue las convenciones SMCCC, incluida una imm16 de 0. El hipervisor de Microsoft devuelve los siguientes valores que representan GUID 4d32ba58-cd24-4764-8eef-6c7516597024:

Register Importancia
X0 0x4d32ba58
X1 0xcd244764
X2 0x8eef6c75
X3 0x16597024

Una vez detectado un hipervisor, el software invitado puede consultar las funcionalidades del hipervisor mediante registros sintéticos mediante el hiperllamada HvCallGetVpRegisters . Se pueden consultar varios registros de claves antes de establecer el registro del identificador del sistema operativo invitado, lo que permite la detección temprana de las características del hipervisor durante el arranque.

Registros de características del hipervisor

Las plataformas ARM64 consultan información del hipervisor a través de registros sintéticos en lugar de instrucciones de CPUID. Estos registros proporcionan información equivalente a sus homólogos de CPUID x64 y se accede a ellos a través de HvCallGetVpRegisters. Todos los registros de características devuelven valores de 128 bits.

Identidad del sistema del hipervisor: HvRegisterHypervisorVersion

Devuelve la información de versión codificada en un valor de 128 bits. El diseño es idéntico al 0x40000002 hoja de CPUID x64, con valores de registro x64 empaquetados en el resultado de 128 bits (EAX en bits 31-0, EBX en bits 63-32, ECX en bits 95-64, EDX en bits 127-96).

Identificación de características del hipervisor: HvRegisterPrivilegesAndFeaturesInfo

Equivalente a 0x40000003 hoja de CPUID x64. Indica qué características están disponibles para la partición en función de los privilegios de partición actuales. Devuelve un valor de 128 bits con estos campos:

bits Información proporcionada
31-0 Corresponde a bits 31-0 de HV_PARTITION_PRIVILEGE_MASK
63-32 Corresponde a bits de 63 a 32 de HV_PARTITION_PRIVILEGE_MASK
64 La compatibilidad con la depuración de invitados está disponible.
65 La compatibilidad con el Monitor de rendimiento está disponible.
66 La compatibilidad con eventos de creación de particiones dinámicas de CPU física está disponible.
67 La compatibilidad con un estado de inactividad de invitado virtual está disponible.
68 La compatibilidad con el estado de suspensión del hipervisor está disponible.
69 La compatibilidad con la consulta de distancias NUMA está disponible.
70 La compatibilidad con la determinación de frecuencias del temporizador está disponible.
71 La compatibilidad con la inserción de comprobaciones de máquinas sintéticas está disponible.
72 La compatibilidad con los registros de bloqueos de invitado está disponible.
73 Reservado.
74 DisableHypervisorAvailable.
75 Reservado.
76 SintPollingModeAvailable.
77 Use temporizadores sintéticos directos.
127-78 Reservado.

Recomendaciones de implementación: HvRegisterFeaturesInfo

Equivalente a 0x40000004 hoja de CPUID x64. Indica los comportamientos que el hipervisor recomienda que el sistema operativo implemente para obtener un rendimiento óptimo. Devuelve un valor de 128 bits.

bits Información proporcionada
0 UseHvRegisterForReset: en ARM64, siempre es false (las particiones deben usar PSCI SYSTEM_RESET en su lugar).
1 Se recomienda usar el tiempo relajado para esta partición. Si se usa, la máquina virtual debe deshabilitar los tiempos de espera del guardián que dependen de la entrega oportuna de interrupciones externas.
2 Se recomienda usar hypercall syntheticClusterIpi. En ARM64, esto es false para la partición raíz (que debe usar ICC_SGI1R_EL1 directamente) y true para las particiones invitadas.
3 Se recomienda usar la interfaz ExProcessorMasks más reciente.
4 Indica que el hipervisor está anidado dentro de una partición de Hyper-V.
5 Indica que la partición debe consumir el sesgo QueryPerformanceCounter proporcionado por la partición raíz.
20-6 Reservado
Veintiuno UseHypercallForMmioAccess
22 UseGpaPinningHypercall
23 WakeVps
25-24 Reservado
26 MapPartitionEventLogBuffer
31-27 Reservado
63-32 Número recomendado de intentos de reintentar un error de bloqueo por subproceso antes de notificar al hipervisor sobre los errores. 0xFFFFFFFF indica que nunca se notifica.
127-64 Reservado

Límites de implementación del hipervisor: HvRegisterImplementationLimitsInfo

Describe los límites de escala admitidos en la implementación actual del hipervisor. Si algún valor es cero, el hipervisor no expone la información correspondiente. Devuelve un valor de 128 bits con un diseño idéntico al 0x40000005 hoja de CPUID x64, con valores de registro x64 empaquetados en el resultado de 128 bits (EAX en bits 31-0, EBX en bits 63-32, ECX en bits 95-64, EDX en bits 127-96).

Características de hardware de implementación: HvRegisterHardwareFeaturesInfo

Equivalente a 0x40000006 hoja de CPUID x64. Indica qué características específicas del hardware se han detectado y están actualmente en uso por el hipervisor. Devuelve un valor de 128 bits.

bits Información proporcionada
0 Se detecta y usa compatibilidad con contadores de rendimiento arquitectónicos.
1 La compatibilidad con la traducción de direcciones de segundo nivel se detecta y está en uso.
2 La compatibilidad con la reasignación de DMA se detecta y se usa.
3 Se detecta la compatibilidad con la reasignación de interrupciones y en uso.
4 Indica que hay una limpieza de patrulla de memoria en el hardware.
5 La protección contra DMA está en uso.
6 Los temporizadores sintéticos son volátiles.
127-7 Reservado

Tipos de eventos de la unidad de supervisión de rendimiento principal (PMU)

Hay disponible un conjunto de línea base de eventos PMU principales de arquitectura de Arm para las particiones invitadas en todas las plataformas ARM64. Hay eventos PMU principales adicionales disponibles en Azure Cobalt 100 y Azure Cobalt 200. Los números de evento y los nombres siguen las definiciones de eventos PMU de arquitectura de Arm.

El software invitado puede identificar la plataforma leyendo el MIDR_EL1 registro y comparando los 32 bits bajos para obtener una igualdad exacta con los valores de la tabla siguiente, sin enmascarar el implementador, variante, arquitectura, parte o campos de revisión. Esta es la heurística recomendada para determinar si los tipos de eventos PMU principales adicionales están disponibles antes de acceder a ellos.

Plataforma MIDR_EL1
Azure Cobalt 100 0x410FD490
Azure Cobalt 200 0x410FD841

En la tabla siguiente, una marca de verificación (✓) indica que el tipo de evento PMU principal es compatible con las particiones invitadas en la plataforma correspondiente.

Número de evento Nombre del evento Todas las plataformas ARM64 Azure Cobalt 100 Azure Cobalt 200
0x0000 SW_INCR
0x0001 L1I_CACHE_REFILL
0x0002 L1I_TLB_REFILL
0x0003 L1D_CACHE_REFILL
0x0004 L1D_CACHE
0x0005 L1D_TLB_REFILL
0x0008 INST_RETIRED
0x0010 BR_MIS_PRED
0x0011 CPU_CYCLES
0x0012 BR_PRED
0x0013 MEM_ACCESS
0x0014 L1I_CACHE
0x0016 L2D_CACHE
0x0017 L2D_CACHE_REFILL
0x001A MEMORY_ERROR
0x001B INST_SPEC
0x001C TTBR_WRITE_RETIRED
0x0020 L2D_CACHE_ALLOCATE
0x0021 BR_RETIRED
0x0022 BR_MIS_PRED_RETIRED
0x0023 STALL_FRONTEND
0x0024 STALL_BACKEND
0x0025 L1D_TLB
0x0026 L1I_TLB
0x0029 L3D_CACHE_ALLOCATE
0x002D L2D_TLB_REFILL
0x002F L2D_TLB
0x0031 REMOTE_ACCESS
0x0034 DTLB_WALK
0x0035 ITLB_WALK
0x0036 LL_CACHE_RD
0x0037 LL_CACHE_MISS_RD
0x0039 L1D_CACHE_LMISS_RD
0x003A OP_RETIRED
0x003B OP_SPEC
0x003C STALL
0x003D STALL_SLOT_BACKEND
0x003E STALL_SLOT_FRONTEND
0x003F STALL_SLOT
0x0040 L1D_CACHE_RD
0x0041 L1D_CACHE_WR
0x0042 L1D_CACHE_REFILL_RD
0x0043 L1D_CACHE_REFILL_WR
0x0044 L1D_CACHE_REFILL_INNER
0x0045 L1D_CACHE_REFILL_OUTER
0x0046 L1D_CACHE_WB_VICTIM
0x004C L1D_TLB_REFILL_RD
0x004D L1D_TLB_REFILL_WR
0x004E L1D_TLB_RD
0x004F L1D_TLB_WR
0x0050 L2D_CACHE_RD
0x0051 L2D_CACHE_WR
0x0052 L2D_CACHE_REFILL_RD
0x0053 L2D_CACHE_REFILL_WR
0x0056 L2D_CACHE_WB_VICTIM
0x005C L2D_TLB_REFILL_RD
0x005D L2D_TLB_REFILL_WR
0x005E L2D_TLB_RD
0x005F L2D_TLB_WR
0x0066 MEM_ACCESS_RD
0x0067 MEM_ACCESS_WR
0x0068 UNALIGNED_LD_SPEC
0x0069 UNALIGNED_ST_SPEC
0x0070 LD_SPEC
0x0071 ST_SPEC
0x0073 DP_SPEC
0x0074 ASE_SPEC
0x0075 VFP_SPEC
0x0077 CRYPTO_SPEC
0x0078 BR_IMMED_SPEC
0x007A BR_INDIRECT_SPEC
0x01B8 L2D_CACHE_L1HWPRF
0x01B9 L2D_CACHE_REFILL_L1HWPRF
0x4004 CNT_CYCLES
0x4005 STALL_BACKEND_MEM
0x4006 L1I_CACHE_LMISS
0x4009 L2D_CACHE_LMISS_RD
0x4020 LDST_ALIGN_LAT
0x4021 LD_ALIGN_LAT
0x4022 ST_ALIGN_LAT
0x4024 MEM_ACCESS_CHECKED
0x4025 MEM_ACCESS_CHECKED_RD
0x4026 MEM_ACCESS_CHECKED_WR
0x8006 SVE_INST_SPEC

Versionamiento

La información de la versión del hipervisor está codificada en HvRegisterHypervisorVersion. El formato coincide con el equivalente x64.