Condividi tramite


Partitions

L'hypervisor supporta l'isolamento in termini di partizione. Una partizione è un'unità logica di isolamento, supportata dall'hypervisor, in cui vengono eseguiti i sistemi operativi.

Flag dei privilegi di partizione

Ogni partizione ha un set di privilegi assegnati dall'hypervisor. I privilegi controllano l'accesso ai registri sintetici o alle hypercall.

Nelle piattaforme x64 una partizione può eseguire query sui relativi privilegi tramite la foglia CPUID (0x40000003) "Identificazione funzionalità hypervisor".

Nelle piattaforme ARM64 una partizione può eseguire query sui propri privilegi tramite il registro HvRegisterPrivilegesAndFeaturesInfo usando HvCallGetVpRegisters.

Per una descrizione di tutti i privilegi , vedere HV_PARTITION_PRIVILEGE_MASK .

Riconoscimento dell'arresto anomalo della partizione

L'hypervisor fornisce partizioni guest con una funzionalità di riconoscimento dell'arresto anomalo del sistema. Questa interfaccia consente al sistema operativo in esecuzione in una partizione guest di fornire informazioni forensi sulle condizioni irreversibili del sistema operativo all'hypervisor come parte della procedura di dump di arresto anomalo del sistema operativo. Le opzioni includono il mantenimento del contenuto dei registri dei parametri di arresto anomalo del guest e la specifica di un messaggio di arresto anomalo del sistema. L'hypervisor rende quindi queste informazioni disponibili per la partizione radice per la registrazione. Questo meccanismo consente all'amministratore dell'host di virtualizzazione di raccogliere informazioni sull'evento di arresto anomalo del sistema operativo guest senza dover esaminare l'archiviazione permanente collegata alla partizione guest per ottenere informazioni sul dump di arresto anomalo del sistema operativo o sul dump di core che potrebbero essere archiviate dal sistema operativo guest che si arresta in modo anomalo.

Nelle piattaforme x64, la disponibilità di questo meccanismo è indicata tramite CPUID.0x40000003.EDX:10, il flag GuestCrashMsrsAvailable. Nelle piattaforme ARM64 la disponibilità è indicata in bit 105 di HvRegisterPrivilegesAndFeaturesInfo. Per informazioni dettagliate, vedere Individuazione delle funzionalità .

Interfaccia di riconoscimento degli arresti anomali guest

Nelle piattaforme x64, l'interfaccia di riconoscimento dell'arresto anomalo del sistema guest viene fornita tramite sei msr sintetici, come definito di seguito.

#define HV_X64_MSR_CRASH_P0 0x40000100
#define HV_X64_MSR_CRASH_P1 0x40000101
#define HV_X64_MSR_CRASH_P2 0x40000102
#define HV_X64_MSR_CRASH_P3 0x40000103
#define HV_X64_MSR_CRASH_P4 0x40000104
#define HV_X64_MSR_CRASH_CTL 0x40000105

Nelle piattaforme ARM64, l'interfaccia di riconoscimento dell'arresto anomalo del sistema guest viene fornita tramite sei registri sintetici a cui si accede tramite HvCallGetVpRegisters e HvCallSetVpRegisters:

  • HvRegisterGuestCrashP0
  • HvRegisterGuestCrashP1
  • HvRegisterGuestCrashP2
  • HvRegisterGuestCrashP3
  • HvRegisterGuestCrashP4
  • HvRegisterGuestCrashCtl

Registro dei controlli di arresto anomalo guest

Il registro dei controlli di arresto anomalo del guest (HV_X64_MSR_CRASH_CTL in x64, HvRegisterGuestCrashCtl in ARM64) può essere usato dalle partizioni guest per determinare le funzionalità di arresto anomalo del guest dell'hypervisor e per richiamare l'azione specificata da eseguire. La struttura dei dati HV_CRASH_CTL_REG_CONTENTS definisce il contenuto del registro.

Determinazione delle funzionalità di arresto anomalo del guest

Per determinare le funzionalità di arresto anomalo del guest, le partizioni guest possono leggere il registro dei controlli di arresto anomalo del guest. Viene segnalato il set supportato di azioni e funzionalità supportate dall'hypervisor.

Richiamo delle funzionalità di arresto anomalo del guest

Per richiamare un'azione di arresto anomalo del guest hypervisor supportata, una partizione guest scrive nel registro dei controlli di arresto anomalo del guest, specificando l'azione desiderata. Sono supportate due varianti: CrashNotify da solo e CrashMessage in combinazione con CrashNotify. Per ogni occorrenza di un arresto anomalo del guest, è necessario eseguire al massimo una sola scrittura nel registro dei controlli di arresto anomalo del guest, specificando una delle due varianti.

Azione di arresto anomalo del guest Description
CrashMessage Questa azione viene usata in combinazione con CrashNotify per specificare un messaggio di arresto anomalo dell'hypervisor. Se selezionata, i valori di P3 e P4 vengono considerati come la posizione e le dimensioni del messaggio. Il registro P3 contiene l'indirizzo fisico guest del messaggio e il registro P4 contiene la lunghezza in byte del messaggio (massimo 4096 byte).
CrashNotify Questa azione indica all'hypervisor che la partizione guest ha completato la scrittura dei dati desiderati nei registri dei parametri di arresto anomalo del guest (ad esempio P0 thru P4) e l'hypervisor deve procedere con la registrazione del contenuto di questi registri.