[vfio-users] GPU passthrough with Intel KVMGT, Nvidia card gets subsystem id 00000000 when passed through

János Horváth hjanos95 at gmail.com
Sun Jul 10 20:26:22 UTC 2016


Hi all,

I'm trying to get native Windows gaming performance while running Linux on
my Optimus laptop (Lenovo Y50).
Hardware:
CPU: Intel Core i7-4710HQ
RAM: 16GB DDR3 1600MHz
GPU: Nvidia GeForce GTX860M & Intel HD 4600
It supports IOMMU and all the requirements for the pci passthrough.

I have found a project by Intel, KVMGT (
https://01.org/igvt-g/blogs/wangbo85/2016/intel-gvt-g-kvmgt-public-release-q12016)
which lets me share the Intel Integrated Graphics (HD 4600) between the
host and the guest, so I thought that I could replicate the Optimus feature
inside the VM, while the host would be running on the Intel HD 4600. I
installed Intel's test release to the laptop (Ubuntu 14.04 64bit with
kernel 4.3.0 patched with support for KVMGT, and a patched QEMU and
SeaBios) and created a Windows 8.1 64bit VM.
It works great, the VM recognizes the Intel HD 4600 and I am able to choose
which machine's (host or guest) screen to show on my display.
(By the way this (Intel's) solution is by far the best for this purpose as
I am able to switch between which OS to show on the displays not having to
only rely on which monitor is plugged to which output)
The problem is (as expected) with the Nvidia GTX860M. I am able to pass
through the device, but in Windows Device Manager, it shows the vendor and
device ID correctly, but the subsystem shows as 00000000, so I am of course
unable to install any driver.
I have tried to use the vBIOS of the Nvidia card with the romfile option of
QEMU, but it does not help (I extracted the vBIOS, which is not UEFI
capable btw, with nouveau driver from a live system).

Here is the command I use to start QEMU:
sudo /usr/bin/qemu-system-x86_64 -m 2048 -smp 2 -M pc -name kvmgt -drive
file=/media/hjanos/Hjanos2TB/VM/GPU/GPU-intel.img,format=raw,index=0,media=disk
-cdrom
/media/hjanos/Hjanos2TB/ISO/en_windows_8.1_with_update_x64_dvd_4065090.iso
-bios /usr/bin/bios.bin -enable-kvm -vgt -vga vgt -display sdl -machine
kernel_irqchip=on -vgt_high_gm_sz 384 -vgt_low_gm_sz 128  -vgt_fence_sz 4
-cpu
host,kvm=off,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_vendor_id=Nvidia43FIX
-usb -usbdevice tablet -net nic -net tap,script=/home/hjanos/qemu-ifup -net
user,smb=/home/hjanos -device
vfio-pci,host=01:00.0,romfile=/media/hjanos/Hjanos2TB/VM/GPU/vbios.rom

I need help to figure out why does the subsystem id gets changed to
00000000 when I pass through the Nvidia card, as I beleive that makes the
driver unable to install. (it is not code 43 as usual, rather it is code 28)

Please let me know if you need any additional details.

Thanks,
Janos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160710/df37d384/attachment.htm>


More information about the vfio-users mailing list