Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um conjunto de processadores virtuais representa uma coleção de processadores virtuais e pode ser usado como uma entrada para algumas hiperchamadas.
Syntax
typedef struct
{
UINT64 Format;
UINT64 ValidBanksMask;
UINT64 BankContents[];
} HV_VP_SET;
Um conjunto de processadores tem dois modos, que são especificados pelo campo formato. Conjuntos de processador com um formato "1" representam todos os processadores virtuais para a partição especificada. Conjuntos de processador com um formato "0" descrevem um conjunto esparso de processadores virtuais.
| Valor de formato | Definir comportamento |
|---|---|
| 0 | Um subconjunto esparso de VPSs |
| 1 | Todos os VPSs (pertencentes a uma partição) |
Conjunto de processador virtual esparso
A seção a seguir descreve como construir um conjunto esparso de processadores virtuais.
O conjunto total de processadores virtuais é dividido em partes de 64, conhecido como "banco". Por exemplo, os processadores 0-63 estão no banco 0, 64-127 estão no banco 1 e assim por diante.
Para descrever um processador individual, seu banco é especificado com ValidBanksMask. Cada bit em ValidBanksMask representa um banco específico.
bank = VPindex / 64
Para cada bit definido com ValidBanksMask, deve haver um elemento na matriz BanksContents. Esse elemento é uma máscara que descreve o próprio banco.
Se um bit em ValidBankMask for 0, não haverá nenhum elemento correspondente em BanksContents. Além disso, para um bit 1 em ValidBankMask, ele é um estado válido para o elemento correspondente em BanksContents pode ser todos 0s, o que significa que nenhum processador está especificado neste banco.
Exemplo de conjunto de processadores
Suponha que uma partição tenha 200 VPSs e que queiramos especificar o seguinte conjunto: {0, 5130}
Primeiro, o formato é 0, pois esse é um conjunto esparso. Em seguida, os bancos correspondentes (e, portanto, o conjunto de bits de ValidBanksMask) são {0, 0, 2}. Portanto, ValidBanksMask é 0x05.
O banco 0 define bits 0 e 5 para especificar o VPSs dentro desse banco. Portanto, o elemento correspondente na máscara BankContents é 0x21.
Como o bit 1 não está definido em ValidBanksMask, não há nenhum elemento correspondente em BankContents. O banco 2 representa o VP de índices 128-191. Para descrever o índice 130, o bit 2 da máscara correspondente é definido. Portanto, BankContents é: {0x21, 0x04}.