¿Puede VirtualBox afectar la disponibilidad de SSE?

3

Estoy haciendo un desarrollo en Linux que se ejecuta en VirtualBox. La computadora es un Core i5 con Windows 7 (32 bits). Según la entrada en Wikipedia, la CPU debe ser compatible con SSE4.2, pero solo SSE3 funciona en la VM. Si compilo con el indicador -msse4 en gcc, el binario resultante se bloquearía con un error de instrucción ilegal.

cleong
fuente

Respuestas:

4

Este es un problema conocido y ya está en su rastreador de errores:

[solicitud de función] Habilite el SO huésped para utilizar SSE4.1, 4.2 y los conjuntos de instrucciones POPCNT https://www.virtualbox.org/ticket/8651

magicandre1981
fuente
2

VirtualBox o KVM o cualquier otra tecnología de virtualización de este tipo expone algunas características de la CPU host al huésped.

¿Por qué no exportar todas las funciones de la CPU host? Imagine que desea migrar su máquina virtual de un host a otro, sin interrupción (o guardando el estado). Pero el segundo host no tiene SSE 4. Si su VM hubiera expuesto SSE 4 en el host 1 y hubiera compilado y ejecutado con éxito un programa utilizando este conjunto de instrucciones, cuando se migre al host 2 se romperá.

Es por eso, en mi humilde opinión, es aconsejable no exponer todos los conjuntos de instrucciones compatibles de la CPU host de forma predeterminada y no me sorprende que este sea el caso con VirtualBox. Sin embargo, debería (y espero que sea la solución implementada para el ticket) permitir al usuario anular la elección predeterminada de las funciones expuestas. Y AFAIK esta opción aún no existe. Entonces tendrás que ser paciente.

Tenga en cuenta que KVM le permite establecer los conjuntos de instrucciones que desea exponer a los invitados por invitado (s).

Huygens
fuente
¿Tiene alguna referencia para no admitir que SSE4 sea "para permitirle migrar" y otras cosas, frente a "todavía no lo hemos logrado"?
Mark Sowul
No, no lo hago. Probablemente debería reformular mi oración, en lugar de leer "Es por eso que VirtualBox no necesariamente se expone por defecto (...)" debería haber leído "Es por eso, en mi humilde opinión, es aconsejable no exponer todas las instrucciones compatibles establecidas por defecto y no me sorprende que este sea el caso con VirtualBox ". Espero responder a su preocupación.
Huygens