[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] AMD-Vi/Intel VT-d: Passthrough or virtualization?

On 8 April 2013 20:53, Zir Blazer <zir_blazer@xxxxxxxxxxx> wrote:
> When I started to hear about virtualization around 5 or 6 years ago, one of
> the main issues at that time was that for the average Windows user it was
> mostly useless for just one reason: You couldn't actually use the Video
> Card. And that means no gaming on a virtualized enviroment.
> Some time later, I started to hear about Xen supporting "VGA passthrough",
> that allowed a Virtual Machine to see and use the Video Card. If I recall

> Because the machine that as been used for these videos is supposed to be a
> Core 2 Duo E6300, it couldn't have any type of IOMMU virtualization as that
> feature, Intel VT-d, was introduced one generation later, starting with
> Nehalem based Processors. However, everytime I google around I hear people
> saying that in order to do VGA passthrough, you need AMD-Vi or Intel VT-d,
> when according to those old videos passthrough was a different thing that
> didn't requiere IOMMU virtualization support for it and that is why it
> worked for him.
> So, to resume this, can anyone explain or give a documentation that can
> exactly tell what is the difference, pros or cons, bewthem that old
> passthrough that I saw and what you can currently do with AMD-Vi/Intel VT-d?
> At least, if I recall correctly, the problem with that type of passthrough
> is that only ONE Virtual Machine can make use of the Video Card. If I
> virtualize it, can multiple VMs share the same GPU, like the OSes currently
> do with the CPU? What are the limitations?

Strictly speaking there are two types of VT-d - VT-d, and VT-d2. VT-d
is the initial virtualisation for directed I/O introduced in the
Conroe era of Intel processors, whilst VT-d2 arrived with the Nehalem

VT-d is mostly a chipset technology in particular a memory controller
feature not a processor feature. Additionally this varies on an
individual motherboard basis - the X38/X48 chipsets have the potential
to support VT-d for instance, but it must be supported in the BIOS (it
needs various tables, it's not just an on/off switch).

With the introduction of Nehalem, the Memory Controller Hub was of
course moved into the processor and for some reason certain processors
(usually the K models) are not enabled for VT-d. Nehalem and the
equivalent AMD chips also support Second Level Address Translation
(EPT on Intel, RVI on AMD) which offers a substantial speedup for
various operations, and in particular virtualised graphics cards in
some instances. The latter is supposedly the reason why Windows Phone
8 development (which needs Hyper-V) also requires a SLAT capable CPU.

Multiple VMs can share the same card, if they are SR IOV capable.
Graphics cards are a whole extra level of pain - performing
passthrough to them is still leading edge except with very specific
hardware and software configurations. You should be able to to hot
plug cards as mentioned.

You're better with multiple cards if you want to run multiple
graphically accelerated VMs. As above, you need a processor that
supports VT-d, a chipset that supports it and a BIOS that is enabled
for it and actually works. For instance, I have passthrough working on
my pre nehalem system with a basic Matrox card, but not yet an AMD
configuration. The BIOS did not support VT-d initially until an update
was applied.


Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.