Web lists-archives.com

Re: KVM PCI Passthrough NVidia GeForce GTX 1080 Ti error code 43




Hi,

Here is my notes/scripts when I did that to attach an nvidia card inside a KVM virtual machine:
https://github.com/eLvErDe/nvidia-docker-cuda-kvm-with-passthru/blob/master/create-kvm-for-nvidia-docker.sh

Adam.

On 11/13/2017 10:37 PM, Ramon Hofer wrote:
Dear Alexander,

Thank you very much for your reply.

The system I am using:
lshw: https://pastebin.com/tB7FqqxN

Host OS:Debian 9 Stretch
Mainboard: Supermicro C7Z170-M (activated VT-d in Bios)
CPU: Intel Core i7-7700K CPU @ 4.20GHz
GPU: EVGA GeForce GTX1080 Ti

The GPU is not listed because I have blacklisted it:
     $ cat /etc/modprobe.d/blacklist.conf
     blacklist nouveau

lspci: https://pastebin.com/6qYuJRPg

I found this guide:
https://scottlinux.com/2016/08/28/gpu-passthrough-with-kvm-and-debian-linux/

After installing Win7 guest, enabling PCI passthrough using
virt-manager, installing the NVidia driver in the guest, Windows
reports the error 43 for the GPU.

Windows has stopped this device because it has reported problems.
(Code 43)

This is described in the above mentioned post and a workaround is
linked:
https://www.reddit.com/r/VFIO/comments/479xnx/guests_with_nvidia_gpus_can_enable_hyperv/

Unfortunately I do not know how to apply the workaround. I
understand
that I should create a file '/usr/libexec/qemu-kvm-hv-vendor' with
the
following content:

     #!/bin/sh
     exec /usr/bin/qemu-kvm \
     `echo "\$@" | sed 's|hv_time|hv_time,hv_vendor_id=whatever|g'`

Or according to the original redhat mailing list post by Alex
Williamson:
https://www.redhat.com/archives/vfio-users/2016-March/msg00092.html

     $ cat /usr/libexec/qemu-kvm-hv-vendor
     #!/bin/sh
     exec /usr/bin/qemu-kvm \
	`echo "\$@" | sed
's|hv_time|hv_time,hv_vendor_id=KeenlyKVM|g'`

But since there is no qemu-kvm present and the directory
'/usr/libexec' does not exist on my system, I wonder how I should
proceed.
This is interesting topic and I hope to find some time to spare to
implement and test this setup on my system. Can't suggest you anything
yet, because this "Code 43" error is generic and can happen even on
normal systems. The reasons could be limitless from driver version
conflict to bios\uefi firmware bug of your motherboard. I wonder, what
VEN_ID and DEV_ID are reported for your VGA in Windows guest? Have you
tried Windows 8.1 or 10 as guests? They could have more support for
virtualization in general.
Interesting. I thought I was just not able to setup KVM / QEMU
properly. Because I read and heard that NVidia deliberately switches
the card off when the driver detects that it is virtualised.

I am using the newest BIOS version (updated on Sunday) on the
motherboard:
Supermicro C7Z170-M
BIOS Version: 2.0a
BIOS Tag: 1088B
Date: 07/17/2017
Time: 15:51:37

Unfortunately I do not know anything about a bioy\uefi firmware bug. Is
this a known issue of my mainboard version?

In the BIOS for the "Boot mode select" setting, I have chosen
"Legacy" (there would also be "UEFI" or "DUAL"). Do you think it might
be worth trying to change it to the other two?

I have uploaded dmesg output if it helps:
dmesg: https://pastebin.com/79Us7WMf

In the Windows 7 guest, the reported IDs are:
VEN_ID: 10DE
DEV_ID: 1B06

The driver version in the Windows 7 guest is:
23.21.13.8813 (Date: 27.10.2017)

I have thought about buying a Windows 10 copy, but it is not possible
to get the direct download version in Switzerland, so I postponed the
purchase due to lack of patience.

But if it helps, here is the information from a Debian 9 guest with the
nvidia-driver package installed:
ID: 10de:1b06
VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1b06]
(rev a1)

This is also what nvidia-detect says:
$ sudo nvidia-detect
Detected NVIDIA GPUs:
00:09.0 VGA compatible controller [0300]: NVIDIA Corporation Device
[10de:1b06] (rev a1)

Checking card:  NVIDIA Corporation Device 1b06 (rev a1)
Your card is supported by the default drivers.
It is recommended to install the
     nvidia-driver
package.

So I installed nvidia-driver and rebooted the Debian 9 guest.
The display setting in XFCE4 still does not show the NVidia card and
the nvidia-setting program reports that I should run nvidia-xconfig as
root, which I did.
This is the resulting config file:
xorg.conf: https://pastebin.com/sCe30emi

Unfortunately lightdm fails to start. Here is the suggested log:
systemctl status lightdm.service: https://pastebin.com/VYgKuCy1

Since there is not much information in that log I have created a
pastebin for dmesg of the failed Debian 9 guest boot attempt:
dmesg for lightdm fail: https://pastebin.com/Djx2YycH


I am not sure if I can still get a copy of Windows 8 somewhere, but if
you think it helps, I can go an buy Windows 10.
Please let me know how I can help you helping me :-)

The problem got me thinking yesterday and today I asked around if
anybody wants the card and if I should buy an AMD GPU. But since my
card came with a pre-installed water block no potential buyer could be
found...


Thank you again and best regards,
Ramon