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

Ryan Flagler ryan.flagler at gmail.com
Thu Jan 28 20:28:12 UTC 2016


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> 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> 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> 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> 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
>>>> https://www.redhat.com/mailman/listinfo/vfio-users
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> vfio-users mailing list
>>> vfio-users at redhat.com
>>> https://www.redhat.com/mailman/listinfo/vfio-users
>>>
>>>
>>
>>
>
> _______________________________________________
> vfio-users mailing list
> 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/486ed63b/attachment.htm>


More information about the vfio-users mailing list