VirtualBox peut-il affecter la disponibilité de SSE?

3

Je suis en train de développer Linux sous VirtualBox. L’ordinateur est un Core i5 sous Windows 7 (32 bits). Selon l'entrée sur Wikipedia, le processeur devrait prendre en charge SSE4.2, mais seul SSE3 fonctionne dans la machine virtuelle. Si je compile avec l'indicateur -msse4 dans gcc, le binaire résultant planterait avec une erreur d'instruction illégale.

cleong
la source

Réponses:

2

VirtualBox ou KVM ou toute autre technologie de virtualisation de ce type expose certaines fonctionnalités du processeur hôte à l'invité.

Pourquoi ne pas exporter toutes les fonctionnalités du processeur hôte? Imaginez que vous souhaitiez migrer votre machine virtuelle d'un hôte à l'autre, sans interruption (ou en sauvegardant l'état). Mais le deuxième hôte n'a pas SSE 4. Si votre machine virtuelle a exposé SSE 4 sur l'hôte 1 et si vous avez bien compilé et exécuté un programme à l'aide de ce jeu d'instructions, il sera interrompu lors de la migration vers l'hôte 2.

C’est pourquoi - à mon humble avis - il est sage de ne pas exposer par défaut tous les ensembles d’instructions pris en charge du processeur hôte et je ne suis pas surpris que ce soit le cas avec VirtualBox. Cela devrait cependant (et j'espère que ce serait la solution implémentée pour le ticket) permettre à l'utilisateur de remplacer le choix par défaut des fonctionnalités exposées. Et autant que je sache, cette option n'existe pas encore. Donc, vous devrez être patient.

Notez que KVM vous permet de définir les jeux d'instructions que vous souhaitez exposer aux invités par invité.

Huygens
la source
Avez-vous des références pour ne pas soutenir SSE4 étant "pour vous permettre de migrer" et autres joyeuseteurs, par opposition à "nous ne sommes pas encore arrivés à nous en occuper"?
Mark Sowul
Non je ne. Je devrais probablement reformuler ma phrase au lieu de lire "C'est pourquoi VirtualBox n'est pas nécessairement exposé par défaut (...)", vous devriez avoir lu "C'est pourquoi - à mon humble avis - il est sage de ne pas exposer toutes les instructions prises en charge définies par défaut et je ne suis pas surpris que ce soit le cas avec VirtualBox ". J'espère que je réponds à votre préoccupation.
Huygens