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

[Xen-users] gtx 9xx passthrough


  • To: xen-users <xen-users@xxxxxxxxxxxxx>
  • From: Kuba <kuba.0000@xxxxx>
  • Date: Sun, 29 Nov 2015 10:59:08 +0100
  • Delivery-date: Sun, 29 Nov 2015 10:01:39 +0000
  • List-id: Xen user discussion <xen-users.lists.xen.org>

Dear List,

I'm going to have to replace my old Quadro with a new GTX 9xx GPU. I've been using GPU passthrough on my workstation for quite some time, but now it seems I've run out of lack. I can't find any readily available way to pass through the latest GTX 9xx cards. Any idea would be much appreciated, but if there is none - maybe I should attempt to do one of the following?

Tweaking NVIDIA's Windows drivers is way beyond my skill set (and would probably violate the EULA). Hardmodding, if at all possible, is a last resort (btw, anyone heard of any successful attempt at hardmodding GTX980/980TI?). I have no problem with changing some resistors, but it would be probably impossible to completely cover your tracks and reverse the changes in an unnoticeable manner in case of RMA.

One last thing that comes to my mind is to hide Xen's CPUID vendor ID, just like QEMU+KVM do. Assuming that the drivers recognize Xen only by a simple string comparison with "XenVMMXenVMM", changing this string for a particular VM might do the trick.

Unfortunately, a quick search through Xen's sources shows that this string is hardcoded in many places - not only in the hypervisor itself, but also in QEMU, SeaBios, Windows PV Drivers...

If I understand this correctly, to mislead only the NVIDIA drivers, two things would have to be done: - the hypervisor should change the vendor ID string (or simply not change it at all) for a chosen VMs, - all the other software that detects Xen by vendor ID should be modified appropriately.

The most straightforward way that comes to my mind is to make Xen change the vendor ID to e.g. "HiddenXenVMM" for a chosen VM and everywhere else change the conditional statements from (pseudocode):

if (vendor_id == "XenVMMXenVMM")

to:

if (vendor_id == "XenVMMXenVMM" || vendor_id == "HiddenXenVMM")

I've only just took a glimpse at the source codes, so I'm not sure if I make any sense at all.

I'm willing to poke around a bit, but I would be very grateful if someone could point me in the right direction. Any guidance would be much appreciated.

Best regards,
Kuba

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users


 


Rackspace

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