O VirtualBox pode afetar a disponibilidade do SSE?

3

Eu estou fazendo algum desenvolvimento no Linux rodando no VirtualBox. O computador é um Core i5 com Windows 7 (32 bits). De acordo com a entrada na Wikipedia, a CPU deve suportar SSE4.2, mas apenas SSE3 funciona na VM. Se eu compilar com o sinalizador -msse4 no gcc, o binário resultante falharia com um erro de instrução ilegal.

    
por cleong 14.03.2013 / 07:08

2 respostas

3

Este é um problema conhecido e já está no bugtracker:

[solicitação de recurso] Ative o sistema operacional convidado para fazer uso dos conjuntos de instruções SSE4.1, 4.2 e POPCNT link

    
por 14.03.2013 / 08:06
2

VirtualBox ou KVM ou qualquer outra tecnologia de virtualização expõe alguns recursos da CPU host ao convidado.

Por que não exportar todos os recursos da CPU host? Imagine que você deseja migrar sua máquina virtual de um host para outro, sem interrupção (ou salvando o estado). Mas o segundo host não tem SSE 4. Se sua VM tiver exposto o SSE 4 no host 1 e você tiver compilado e executado com êxito um programa usando este conjunto de instruções, quando migrado para o host 2, ele será interrompido.

É por isso que - IMHO - é aconselhável não expor todas as instruções suportadas do CPU do host por padrão e não me surpreende que este seja o caso do VirtualBox. No entanto, deve (e espero que seja a solução implementada para o ticket) permitir que o usuário substitua a opção padrão de recursos expostos. E AFAIK esta opção ainda não existe. Então você terá que ser paciente.

Observe que o KVM permite que você defina os conjuntos de instruções que deseja expor ao (s) convidado (s) por hóspede (s).

    
por 14.03.2013 / 08:49