[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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



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

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]