[vfio-users] VM doesn't boot if I use GPU passthrough

Ruben Felgenhauer 4felgenh at informatik.uni-hamburg.de
Thu Jan 28 20:32:00 UTC 2016


Hi,

These are the last few lines:

01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 
750 Ti] (rev a2)
     Kernel driver in use: pci-stub
     Kernel modules: nvidia
01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)
     Kernel driver in use: pci-stub
     Kernel driver in use: ahci

Best regards,
Ruben

Am 28.01.2016 um 21:28 schrieb Ryan Flagler:
> Ruben,
>
> What is your output from this?
>
> lspci -k | egrep -i '(nvidia|driver)'
>
> Just need the lines with your video card and the driver line below 
> each one of those.
>
> On Thu, Jan 28, 2016 at 2:18 PM Ruben Felgenhauer 
> <4felgenh at informatik.uni-hamburg.de 
> <mailto:4felgenh at informatik.uni-hamburg.de>> wrote:
>
>     Hi again, Will!
>
>     I had removed the hypervclock tag back then, but forgot to mention
>     it, sorry.
>     In the meantime I played around with the config quite a lot, but
>     nothing helps, always Code 43.
>     I tried to compare your xml file with mine, but nothing really
>     stuck out.
>
>     Can you remember having done anything special to get the 750ti to
>     work?
>     Did you ever have problems with Code 43 aswell?
>     Is it maybe a problem with other devices or is the gpu simply
>     still noticing the hypervisor?
>     Config is here: http://pastebin.com/fL6PGrM0
>
>     Best regards,
>     Ruben
>
>
>     Am 25.01.2016 um 17:01 schrieb Will Marler:
>>     This is discussed in
>>     http://vfio.blogspot.com/2015/05/vfio-gpu-how-to-series-part-4-our-first.html.
>>     You have to do more than <kvm><hidden state='on'/></kvm>:
>>
>>     "The GeForce card is nearly as easy, but we first need to work
>>     around some of the roadblocks Nvidia has put in place to prevent
>>     you from using the hardware you've purchased in the way that you
>>     desire (and by my reading conforms to the EULA for their
>>     software, but IANAL).  For this step we again need to run virsh
>>     edit on the VM.  Within the <features> section, remove everything
>>     between the <hyperv> tags, including the tags themselves.  In
>>     their place add the following tags:
>>
>>         <kvm>
>>           <hidden state='on'/>
>>         </kvm>
>>
>>     Additionally, within the <clock> tag, find the timer named
>>     hypervclock, remove the line containing this tag completely. 
>>     Save and exit the edit session."
>>
>>     I can confirm it works, I've been getting a lot of mileage from
>>     my passed-through 750Ti lately since getting a Steam Link :-D.
>>
>>     On Sun, Jan 24, 2016 at 7:32 AM, Ruben Felgenhauer
>>     <4felgenh at informatik.uni-hamburg.de
>>     <mailto:4felgenh at informatik.uni-hamburg.de>> wrote:
>>
>>         Hi,
>>
>>         finally I had time to this again. I tried out virt-manager
>>         and after a bit of playing around with it, it /somewhat/ worked:
>>
>>         The machine is at least booting. I still have a standard vga
>>         card enabled in the virt-manager config window.
>>         After the machine has booted, I can see that the device gets
>>         recognized as 750ti.
>>         However, the gpu doesn't get used, because of 'Code 43'.
>>         Code 43 is a generic error, so any idea what it could mean in
>>         this case?
>>
>>         Of course I added the <kvm><hidden state='on'/></kvm> lines
>>         at the associated position.
>>
>>         Best regards,
>>         Ruben
>>
>>
>>         Am 18.01.2016 um 22:27 schrieb Will Marler:
>>>         I'm not sure what correct command-line syntax is. Have you
>>>         tried using libvirt and VirtManager to handle your VM rather
>>>         than command line, and modifying the XML rather than the
>>>         command line? I think that's generally the preferred method
>>>         these days (it's certainly easier from my point of view, and
>>>         the way I got my 750 Ti to pass through).
>>>
>>>         On Mon, Jan 18, 2016 at 11:04 AM, Ruben Felgenhauer
>>>         <4felgenh at informatik.uni-hamburg.de
>>>         <mailto:4felgenh at informatik.uni-hamburg.de>> wrote:
>>>
>>>             Hi, Alex!
>>>
>>>             Thanks for your reply!
>>>             My GPU indeed has a seperate audio device located at
>>>             01:00.1.
>>>
>>>             However, just adding -device vfio-pci,host=01:00.1
>>>             doesn't seem to do the trick.
>>>             Of course the corresponding device is already
>>>             blacklisted and bound to vfio.
>>>
>>>             The Debian Wiki entry about VGA passthrough
>>>             (https://wiki.debian.org/VGAPassthrough) mentions QEMU
>>>             arguments like "-device
>>>             vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,romfile=...
>>>             -device vfio-pci,host=01:00.1,bus=pcie.0" which seems to
>>>             address GPUs with audio devices, but if I try to do
>>>             something similar, the buses 'root' and 'pcie' couldn't
>>>             be found. Maybe I missed something very important?
>>>
>>>             On the same article, it says that the "HDMI soundcard
>>>             [...] needs to be unbound from its driver":
>>>             # echo '0000:01:00.1' | sudo tee
>>>             /sys/bus/pci/devices/0000:01:00.1/driver/unbind
>>>             I figured the vfio-bind script from the Arch Linux Forum
>>>             thread
>>>             (https://bbs.archlinux.org/viewtopic.php?id=162768)
>>>             would do exactly this thing, so I didn't explicitly do
>>>             so for the audio device. Is that okay?
>>>
>>>             Best regards,
>>>             Ruben
>>>
>>>
>>>             Am 18.01.2016 um 08:31 schrieb Alexander Petrenz:
>>>>             Hi Ruben,
>>>>
>>>>             I guess your 750ti also has some audio device. You
>>>>             should pass through this too. It should be something
>>>>             like 01:00.1. There are many command line examples you
>>>>             can find about that.
>>>>             Also I´m not quite sure, if you should remove the x-vga=on.
>>>>
>>>>             Regards
>>>>             Alex
>>>>
>>>>             On Sun, Jan 17, 2016 at 11:12 PM, Ruben Felgenhauer
>>>>             <4felgenh at informatik.uni-hamburg.de
>>>>             <mailto:4felgenh at informatik.uni-hamburg.de>> wrote:
>>>>
>>>>                 Hi,
>>>>
>>>>                 I am trying to pass my nVidia GTX 750ti to my QEMU
>>>>                 guest.
>>>>
>>>>                 Problem is: After the QEMU monitor pops up, nothing
>>>>                 happens. The GPU's output is dead, and the vm won't
>>>>                 be accessible via SSH anymore, so it's very likely
>>>>                 that the VM isn't booting up at all. Also, there
>>>>                 are no error messages from QEMU on the console
>>>>                 whatsoever which makes debugging it especially hard.
>>>>
>>>>                 This is how I start the vm with normal vga emulation:
>>>>                 qemu-system-x86_64 -hda vm.ovl -boot c -enable-kvm
>>>>                 -m 1024 -cpu host,kvm=off -smp cores=4,threads=2
>>>>                 -redir tcp:5022::22
>>>>                 Everything runs fine in this case. To do the
>>>>                 passthrough, I add this:
>>>>                 -device
>>>>                 vfio-pci,host=01:00.0,multifunction=on,x-vga=on
>>>>                 -vga none
>>>>                 This brings said problems with it. I also tried out
>>>>                 multiple different combinations of -device's
>>>>                 arguments or even adding a romfile for the GPU, but
>>>>                 none of these steps changed anything at all.
>>>>
>>>>                 Obviously, I am using a BIOS installation and I'm
>>>>                 well-aware with this bug:
>>>>                 https://bugzilla.kernel.org/show_bug.cgi?id=107561,
>>>>                 but neither using less RAM (as you can see I am
>>>>                 using 1GB now) nor switching to an older Kernel
>>>>                 changed anything about the problem. I have tried
>>>>                 Kernel 4.1.0 and 4.3.0.
>>>>
>>>>                 Host is Debian testing with QEMU 2.5.0.
>>>>                 I tried both Debian and Windows 7 as a guest, but
>>>>                 both are showing exactly the same behaviour.
>>>>                 Mainboard is an ASUS Z87-PLUS. The 750ti is
>>>>                 produced by ASUS aswell.
>>>>
>>>>                 Any idea how I could get passthrough running?
>>>>
>>>>                 _______________________________________________
>>>>                 vfio-users mailing list
>>>>                 vfio-users at redhat.com <mailto:vfio-users at redhat.com>
>>>>                 https://www.redhat.com/mailman/listinfo/vfio-users
>>>>
>>>>
>>>
>>>
>>>             _______________________________________________
>>>             vfio-users mailing list
>>>             vfio-users at redhat.com <mailto:vfio-users at redhat.com>
>>>             https://www.redhat.com/mailman/listinfo/vfio-users
>>>
>>>
>>
>>
>
>     _______________________________________________
>     vfio-users mailing list
>     vfio-users at redhat.com <mailto:vfio-users at redhat.com>
>     https://www.redhat.com/mailman/listinfo/vfio-users
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160128/a48fcbb2/attachment.htm>


More information about the vfio-users mailing list