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

Re: [Xen-users] VGA PASSTHROUGH not working :(

Well, it looks to me like you don't have an IOMMU. You can check your Intel processor http://ark.intel.com/ and look for "VT-d" support. There is probably a similar site for AMD, but they call it "IOMMU" support; same thing just different names. There might also be some way to check through `lshw` or `/proc/cpuinfo` or the like, but I don't know for sure.

The wiki mentions that generic PCI passthrough might still work on some graphics cards, even without an IOMMU, but I imagine your chances are pretty slim. Something to try perhaps is setting up your HVM to automatically start when the system is booted, with generic PCI passthrough enabled, and blacklist the module on the Dom0 and reboot. In theory this prevents the Dom0 driver from interfering with the HVM's configuration of the graphics card, but once again, it might work or it might not.


If that doesn't work, your options are buy a new PC/processor with an IOMMU, or use VNC, Spice, SDL, GTK, etc. with userspace frontends in the Dom0. Spice with the QXL video driver is likely to give you the best performance, but even it won't compete with that of VGA passthrough.


If you go the route of upgrading your hardware, XenGT (now called "GVT-v for Xen") is something else to look into. The idea behind it is to allow multiple VMs to simultaneously use VGA passthrough in a safe and performant manner by creating multiple virtual graphics cards at the hardware level. At least as of Jan 2015, XenGT is being developed out-of-tree, but I haven't followed up on it as to whether it's been merged (or abandoned). If I recall correctly, this is supported on Intel 6th generation and newer processors with Intel HD 6000+ graphics, but you should definitely double check that.


There used to be something called "Paravirtualized DRM", which probably worked like the paravirtualized framebuffer, only using the newer and faster Linux DRM API. This, I guess, would have allowed multiple rendering clients across multiple VMs to directly render their window contents just as they would on baremetal (with the PV DRM driver acting as a shim), without any kind of VGA/PCI passthrough. Unfortunately this effort has been abandoned, and I've been unable to track down the author or even the original code.


Quoting Jason Long <hack3rcon@xxxxxxxxx>:

I want to use my VGA in VM that running Windows 7, My VGA information is :
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
Subsystem: ASUSTeK Computer Inc. Device 8354
Kernel driver in use: nouveau
Kernel modules: nouveau
And :
[root@localhost ~]# xl pci-assignable-list 
[root@localhost ~]# 
And I added below lines to my VM config file :
pci=['01:00.0 ']
but when I want fire my VM, It show me below error :
libxl: error: libxl_pci.c:1089:libxl__device_pci_add: PCI device 0000:01:00.0 cannot be assigned - no IOMMU?
libxl: error: libxl_create.c:1405:domcreate_attach_pci: libxl_device_pci_add failed: -1
libxl: info: libxl.c:1698:devices_destroy_cb: forked pid 3365 for destroy of domain 3
How can I solve it?

ONLY AT VFEmail! - Use our Metadata Mitigator™ to keep your email out of the NSA's hands!
$24.95 ONETIME Lifetime accounts with Privacy Features!
No Bandwidth Quotas!   15GB disk space!
Commercial and Bulk Mail Options!

Xen-users mailing list



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