[vfio-users] Nvidia Error 43 and vendor_id state='on'

David david283 at gmail.com
Sun Jun 12 18:57:33 UTC 2016


Thank you for the Reply Nicolas.

Thanks for the info on the USB controllers, i may in the future play
with that and try to bind them only when the VM is running.

As for my XML config, at the time I copied it, there was an issue with
the Nvidia card giving an error 43 in device manager after boot.  I
reattached the virtual VGA and console to gain access and
troubleshoot.  I then remove the nvidia 760 and was was playing with
the XML to restore the <hyperv> and <clock> settings.

I have since resolved the nvidia card error 43 issue (it was a card
seating or cable issue) and removed the 3 <hyperv> and one <clock>
setting.  I have given up on those 4 settings for now, as any one of
the 4 will prevent boot.


Thank you for the tip on the MSI interrupts, i will read that and
follow it to see if it resolves my audio issues.

On Sun, Jun 12, 2016 at 12:36 PM, Nicolas Roy-Renaud
<nicolas.roy-renaud.1 at ens.etsmtl.ca> wrote:
> On 2016-06-11 18:25, David wrote:
>
> OK, here we go.  Understand my XML is a little in pieces right now, as
> i am trying to re-add the
> <hyperv> settings and the one under <clock offset='localtime'>.  In
> order to get the VM to boot i
> had to remove the Nvidia card.  I first tried putting back all 3
> hyperv settings and the clock setting,
> but that didnt work.  So then i took out the clock setting and tried,
> still not luck.  The last thing i
> tried was just the clock setting and took out the 3 hyperv.  Still
> nothing.  All this without the video
> card in.
>
> Kernel command line =
> rd.lvm.lv=Linux1/root
> rd.luks.uuid=luks-03d2bed8-deb5-414c-88aa-3c09178447ff
> rd.lvm.lv=Linux1/swap
> pci-stub.ids=8086:1d2d,8086:1d26
> rd.driver.pre=vfio-pci
> hugepages=6144
>
> rhgb quiet intel_iommu=on"
>
>   * Passing the Nvidia card because its a MUCH better gaming card. The 2
> pci-stub devices are 2 Intel USB controllers.  Those are working fine
> in the VM.  For some reason the USB controllers would not work with
> vfio-pci, but worked fine with pci-stub*
>
> You shouldn't need to bind vfio-pci or pci-stub to your USB controllers at
> boot, those can be detached and reattached dynamically at runtime.
>
> IOMMU group 23
>     01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
> [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] [1002:6779]
>     01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI]
> Caicos HDMI Audio [Radeon HD 6400 Series] [1002:aa98]
> IOMMU group 24
>     02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104
> [GeForce GTX 760] [10de:1187] (rev a1)
>     02:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio
> Controller [10de:0e0a] (rev a1)
>
> /etc/modprobe.d/local.conf =
> options vfio-pci ids=10de:1187,10de:0e0a
>
> The XML lines i have currently removed =
> <hyperv>
> <relaxed state='on'/>
> <vapic state='on'/>
> <spinlocks state='on' retries='8191'/>
> </hyperv>
>
> <domain type='kvm'>
>   <name>win7</name>
>   <uuid>5e650e04-d3f4-459d-a853-eb211e8af1ed</uuid>
>   <memory unit='KiB'>12582912</memory>
>   <currentMemory unit='KiB'>12582912</currentMemory>
>   <memoryBacking>
>     <hugepages/>
>   </memoryBacking>
>   <vcpu placement='static'>4</vcpu>
>   <cputune>
>     <vcpupin vcpu='0' cpuset='2'/>
>     <vcpupin vcpu='1' cpuset='3'/>
>     <vcpupin vcpu='2' cpuset='8'/>
>     <vcpupin vcpu='3' cpuset='9'/>
>   </cputune>
>   <os>
>     <type arch='x86_64' machine='pc-i440fx-2.6'>hvm</type>
>     <loader readonly='yes'
> type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
>     <nvram>/var/lib/libvirt/qemu/nvram/win7_VARS.fd</nvram>
>     <bootmenu enable='no'/>
>   </os>
>   <features>
>     <acpi/>
>     <apic/>
>     <hyperv>
>       <vendor_id state='on' value='abcdefg'/>
>     </hyperv>
>     <kvm>
>       <hidden state='on'/>
>     </kvm>
>     <vmport state='off'/>
>   </features>
>   <cpu mode='host-passthrough'>
>     <topology sockets='1' cores='2' threads='2'/>
>   </cpu>
>   <clock offset='localtime'>
>     <timer name='hypervclock' present='yes'/>
>     <timer name='rtc' tickpolicy='catchup'/>
>     <timer name='pit' tickpolicy='delay'/>
>     <timer name='hpet' present='no'/>
>   </clock>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>restart</on_crash>
>   <pm>
>     <suspend-to-mem enabled='no'/>
>     <suspend-to-disk enabled='no'/>
>   </pm>
>   <devices>
>     <emulator>/usr/bin/qemu-kvm</emulator>
>     <disk type='file' device='disk'>
>       <driver name='qemu' type='raw' cache='none' io='native'/>
>       <source file='/var/lib/libvirt/images/win7gaming.img'/>
>       <target dev='vda' bus='virtio'/>
>       <boot order='1'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x07'
> function='0x0'/>
>     </disk>
>     <disk type='file' device='cdrom'>
>       <driver name='qemu' type='raw'/>
>       <source file='/home/david283/Downloads/virtio-win-0.1.117.iso'/>
>       <target dev='hdb' bus='ide'/>
>       <readonly/>
>       <address type='drive' controller='0' bus='0' target='0' unit='1'/>
>     </disk>
>    <controller type='usb' index='0' model='ich9-ehci1'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
> function='0x7'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci1'>
>       <master startport='0'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
> function='0x0' multifunction='on'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci2'>
>       <master startport='2'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
> function='0x1'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci3'>
>       <master startport='4'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
> function='0x2'/>
>     </controller>
>     <controller type='pci' index='0' model='pci-root'/>
>     <controller type='ide' index='0'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
> function='0x1'/>
>     </controller>
>     <interface type='direct'>
>       <mac address='52:54:00:56:fb:87'/>
>       <source dev='eno1' mode='bridge'/>
>      <model type='virtio'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
> function='0x0'/>
>     </interface>
>     <input type='mouse' bus='ps2'/>
>     <input type='keyboard' bus='ps2'/>
>     <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
>     <video>
>       <model type='vga' vram='16384' heads='1' primary='yes'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
> function='0x0'/>
>     </video>
>     <hostdev mode='subsystem' type='pci' managed='yes'>
>       <source>
>         <address domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/>
>       </source>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
> function='0x0'/>
>     </hostdev>
>     <hostdev mode='subsystem' type='pci' managed='yes'>
>       <source>
>         <address domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/>
>       </source>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x09'
> function='0x0'/>
>     </hostdev>
>     <memballoon model='virtio'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x08'
> function='0x0'/>
>     </memballoon>
>   </devices>
> </domain>
>
> Your config looks pretty good, aside from the fact that you still have a
> virtual VGA adapter and that I'm not seeing your guest GPU (02:00.00) in
> your VM config. You're saying your VM can't boot when it's attached, do you
> mean that you're actually just getting an Error 43 or tht your GPU is simply
> not outputting anything?
>
> I have tried putting each of the below settings back into the XML, one
> at a time.  Any one of these lines will cause the VM to fail to boot,
> and then reboot in windows repair mode.  Not sure what i can do about
> that.  Again, i don't use “-cpu
> host,kvm=off” anywhere.  I was never really clear on where to put that
> setting at anyway.   Does anyone think i should be using it?
>
> Don't mind those command line arguments, those are if you're using qemu
> without libvirt. You're already passing them to qemu by having <kvm><hidden
> state='on'/></kvm> in your guest config.
>
> My next problem i want to tackle is my audio issues.  I am using the
> HDMI audio from the Nvidia card.  It will sometimes cut out for a
> split second for no reason, maybe once every 5 to 10 seconds.  Also
> sometimes during games I will hear a quick "tearing" noise.
>
> You'll want to enable MSI interrupts for that. The Arch wiki article doesn't
> mention it yet (I was planning to add it sometime soon), but it's a
> requirement to get HDMI audio to work properly.
>
> -Nicolas



-- 
David
david283 at gmail.com




More information about the vfio-users mailing list