2

Does virtualbox require a CPU to support VT-d in order to host 64bit guest OSs?

For example ark.intel.com says this for a particular processor

enter image description here

I understand that virtualbox requires a CPU supporting virtualisation in order to support 64bit guest OSs. Is simply VT-x sufficient, or does it need e.g. both VT-x and VT-d?

0

1 Answer 1

1

Virtualization support for a 64-bit guest OS is not dependent on Intel's VT-d technology. VT-x alone is sufficient for a 64-bit guest.

Intel's VT-d is used for I/O passthrough (also referred to as PCI passthrough).

From Wikipedia - x86 virtualization:

I/O MMU virtualization (AMD-Vi and Intel VT-d):

An input/output memory management unit (IOMMU) allows guest virtual machines to directly use peripheral devices, such as Ethernet, accelerated graphics cards, and hard-drive controllers, through DMA and interrupt remapping. This is sometimes called PCI passthrough

See also from David Ott's article on software.intel.com:

VT-d, at the time of this writing, includes four key capabilities

  1. I/O device assignment. This feature allows an administrator to assign I/O devices to VMs in any desired configuration.

  2. DMA remapping. Supports address translations for device DMA data transfers.

  3. Interrupt remapping. Provides VM routing and isolation of device interrupts.

  4. Reliability features. Reports and records system software DMA and interrupt erros that may otherwise corrupt memory of impact VM isolation.

Note that VT-d is not dependent on VT-x. That is, a VT-x enabled system can operate without VT-d, or without VT-d enabled or configured. You simply miss the benefits of the feature. Many people have asked about this point.

And here's one more reference that specifically mentions that VT-d isn't relevant when it comes to 64-bit guest capability in a VM. From Virtualbox Forum's Canonical post "I have a 64bit host, but can't install 64bit guests":

You usually need to enable VT-x/AMD-v in the host PC BIOS. You need to check with your PC manual or support forum to find out how to boot into the BIOS screen. This is probably not something we here at the VirtualBox forums can help you with. Once you get there you need to look for something buried in a menu, perhaps in the security category. The option may be called something like "Enable Virtualization Technology". If you see "Virtual Directed I/O" (VT-d/AMD-Vi) then that is a different thing. Remember to power cycle your host PC after making and saving the BIOS changes - in this case a full restart from power off is required, just rebooting or resuming from a hibernated state may not do the job.

7
  • thanks, do you know anything about whether VT-d is common or not (like do most CPUs support it?), and do you know whether docker requires VT-d?
    – barlop
    Commented Mar 30, 2019 at 1:34
  • Most i5/i7 since probably 3rd generation (or thereabouts) had VT-d. A lot of the i3s still didn't though until more recent generations. Docker does not require it. Docker isn't virtualization in the same sense as virtualbox and other VMs are. Docker is operating system level virtualization. VT-d doesn't come into play. Even VT-x isn't needed for docker.
    – n8te
    Commented Mar 30, 2019 at 1:46
  • what do you make of this then? apple.stackexchange.com/questions/314971/… and github.com/docker/for-mac/issues/2591
    – barlop
    Commented Mar 30, 2019 at 8:54
  • 2
    Ahh ok. Docker originated on Linux and is developed mostly for Linux. When run on Linux it uses the host kernel and doesn't require VT-x since it's not that type of virtualization. But to get Docker to work on Windows or Mac, you have to use an underlying hypervisor just to get it to work.
    – n8te
    Commented Mar 30, 2019 at 9:12
  • 1
    Look at this post. Looks like the Apple hypervisor requires the Westmere and later Intel processors. Which would be when Intel switched over to the Core series of processors. Your core duo came right before that.
    – n8te
    Commented Mar 30, 2019 at 9:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .