How to disabling a particular instruction set in VirtualBox?

A modern host computer should have the latest instruction set, such as AVX.

I want to emulate the situation without AVX in the guest OS, so I want to disable AVX instruction set in the VM.

  • Haven't played any with VirtualBox, but qemu (and Bochs) allow you to specify the CPU model (somewhat).
    – vonbrand
    Feb 9, 2013 at 23:18
  • Apparently now is possible, see this question on askubuntu.com Oct 14, 2016 at 11:02

2 Answers 2


VirtualBox does not support that.

If you're running Linux, there exists a patch to remove the features:

"Clear AVX, AVX2 features along with clearing XSAVE feature bits, as part of the parsing 'noxsave' parameter." https://patchwork.kernel.org/patch/1521191/

  • Need to patch and compile kernel? so complicated
    – linquize
    Feb 12, 2013 at 11:52
  • It may be possible to do a symlink hack with /proc/cpuinfo by mounting /proc somewhere else and symlinking everything into /proc except cpuinfo, where you take a file copy and remove the flags by hand. I have no idea if that will work, though. I don't know of a simple way to do this.
    – larstobi
    Feb 12, 2013 at 11:58
  • It seems that the patch referenced above made it to the 3.7 Linux release. So if you're running that kernel or later, you should have the patch already, and can invoke the mode by the "noxsave" parameter to the kernel in GRUB.
    – larstobi
    Feb 12, 2013 at 12:11

Recent versions of VirtualBox support this through VBoxInternal sets:

Vagrant.configure('2') do |config|
  config.vm.provider :virtualbox do |vb|
    vb.customize ['setextradata', :id, 'VBoxInternal/CPUM/IsaExts/AVX', '0']
    vb.customize ['setextradata', :id, 'VBoxInternal/CPUM/IsaExts/AVX2', '0']
    vb.customize ['modifyvm', :id, '--ioapic', 'on']

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.