I saw some patches about PCI-passthrough for HVM(non-IOMMU)
and I am interested in it. I want to assign my graphics card(nVidia
GeForce 7900GS) to an HVM domain (Vista) in order to run 3D-intensive
work(for example, 3D-games).
What I want to ask is that is it really possible to pass the
graphics card to HVM domain running Vista now? That is, have anyone
ever successfully passed a modern graphics card to a Vista HVM? Since
the graphics card is a kind of complicated device. Are there any
technical problems with the passthrough of a modern graphics card?
I have tried the direct-io.hg subtree, but I just can't boot
the Vista HVM domain with nativedom=1 option. Xen boots without any
problem with nativedom=1, nativedom_mem=1024M option(here the 1024M
memory is reserved for the HVM) and dom0_mem=800M option(I have 2G RAM
totally). But when I type xm cr vista.hvm to create the HVM
domain(note that it is bootable without the nativedom=1 option),
sometimes a disk read error occurs(as displayed on the HVM screen),
sometimes it just appear to be dead locked and sometimes it says:
"Error: Device 768(vbd) could not be connected". After the failure of
starting the HVM as nativedom, I can't even start it as a normal HVM
domain, the symptom will also be dead lock or "Error: Device 768(vbd)
could not be connected". If a disk read error occurs during the boot
of the HVM domain, the host's filesystem will appear to be
So there is surely some problems with the nativedom(Neo-1to1)
part in the current diret-io.hg subtree. The author has memtioned that
on x86-32, the memory 0-12M is mapped to 16-28M, and if any devices
DMA at 0-12M, crashes may occur. Is it possible that the dead-lock
problem and the "Device 768(vbd) could not be connected" problem
during booting are caused by the mapping?
This is just the one part of the problem. Another problem is
that currently I don't have the driver of my graphics card(nVidia
GeForce 7900GS), using lspci command I saw it is the pci device
06:00.0, but there is no "driver" directory in
/sys/bus/pci/device/06:00.0/, when I use the PCI=['06:00.0'] option in
the hvm config file, error message says can't find
/sys/bus/pci/device/06:00.0/driver. Is it still possible to use
pciback to hide this device and pass it to the HVM domain? I typed
"modprobe pciback" to insert the pciback module, but I still can't
find any pciback directory in /sys/bus and any of its sub-dir. Should
I need to compile it directly into the kernel?
And finally I want to ask another question, can I assign two
usb devices to two different HVM domains now? If not, any future
support about this issue?
I am not familiar with the code of the HVM part. I will take a
look at this part and the nativedom patches, but first I want to make
sure I am on the right way.
Xen-devel mailing list