[vfio-users] RX 480 vga passthrough 3D mode host hangs

Quentin Deldycke quentindeldycke at gmail.com
Tue Aug 22 14:24:06 UTC 2017


If you want, here is a working i440fx libvirt xml file using r9 290

I would say much thing about your command line:

   - You are not using OVMF. For modern cards, i think it is much more
   suitable.
   - Is your R9 your boot card? If it is the case, it is 'initailized' by
   linux a way or another. This is not good :/
   - I would delete ALL unneeded devices like your second passed through
   device, second drive, sound card... To target only your problematic device
   - Why providing the rom file of the card? Are you trying to make it pass
   for another one? (like providing a r9 290x rom for a r9 290?)
   - Do you use isolcpu? Or any kind of cpu pinning?


Actually libvirt is quite easy to configure and provide much more
interesting features like cpu pinning...

--
Deldycke Quentin


On 22 August 2017 at 16:12, Jiri Novak <jiri.novak at ghorland.net> wrote:

> Hi,
>
> not sure in this case, with other GPU, R7 240 it works fine, there's
> nothing else on the same iommu group than the gpu and it's soundcard.
> When I started teting out things like this some time ago libvirt didn't
> allow to set up all the things that were needes for vga passthrough, so
> I've just trashed and stayed like that :) Might retry now on debian 9, if
> it supports what I need or not.
> Anyway, with libvirt it's usually more difficult to fix the wrong
> commandline so I'm trying to find out what is actually wrong to be able to
> fix it, not to hope libvirt will work out of the box and if not, I'm doomed
> :)
>
> Gh.
>
> Quentin Deldycke wrote:
>
> Hello,
>
> I think that first, you should use libvirt.
> I believe that most bugs are from a badly made qemu command line, bad
> isolations or stull like this.
>
> Libvirt => less pain, more working vms!
>
>
>
> --
> Deldycke Quentin
>
>
> On 22 August 2017 at 13:16, Jiri Novak <jiri.novak at ghorland.net> wrote:
>
>> Hi,
>>
>> I've got back again to  testing the RX 480 setup with tips I got
>> previously (like using i440fx instead of q35) and got a bit further, now
>> I can run it at least in 2D mode (if I use driver from windows update)
>> on windows 10 rev 1703.
>>
>> If I install full driver from AMD website, the host hangs during install
>> and after that, it runs about 2-3minutes after boot until it hangs.
>> With driver from windows update, it hangs when I run any game.
>>
>> Any ideas what to try next, how to find out what's wrong?
>>
>> Qemu commandline:
>>
>> LC_ALL=C
>> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
>> QEMU_AUDIO_DRV=pa /usr/bin/taskset -c 4-7,20-23
>> /usr/bin/qemu-system-x86_64 \
>>     -name 12-wingame \
>>     -machine pc-i440fx-2.8,accel=kvm,usb=off \
>>     -cpu host \
>>     -object
>> memory-backend-file,id=mem0,size=16G,mem-path=/dev/hugepages1g,share=off
>> \
>>     -numa node,nodeid=0,memdev=mem0 \
>>     -m 16G \
>>     -realtime mlock=off \
>>     -smp sockets=1,cores=4,threads=2 \
>>     -uuid 4baaaaaa-aaf5-aaaaaa-919d-aaaaaaacaaaa \
>>     -nographic -no-user-config -nodefaults -no-hpet \
>>     -rtc base=localtime,driftfix=slew \
>>     -global kvm-pit.lost_tick_policy=discard \
>>     -boot d \
>>     -drive
>> file=/dev/Z-ssd/qemu/12-wingame,if=none,id=drive-virtio-
>> disk0,format=raw,cache=none,aio=native
>> \
>>     -drive
>> file=/dev/Z-ssd/data/games-blizzard,if=none,id=drive-virtio-
>> disk1,format=raw,cache=none,aio=native
>> \
>>     -device virtio-scsi-pci,bus=pci.0,addr=0x5 \
>>     -device scsi-hd,drive=drive-virtio-disk0 \
>>     -device scsi-hd,drive=drive-virtio-disk1 \
>>     -netdev tap,id=netdev0,ifname=V0300t12,script=no,downscript=no \
>>     -device
>> virtio-net-pci,netdev=netdev0,id=net0,mac=42:42:42:00:00:0c,
>> bus=pci.0,addr=0x6
>> \
>>     -device
>> vfio-pci,host=02:00.0,id=hostdev6,bus=pci.0,multifunction=
>> on,addr=0x3,x-vga=on,romfile=/root/roms/Sapphire.RX480.4096.161002.rom
>> \
>>     -device vfio-pci,host=02:00.1,id=hostdev7,bus=pci.0,addr=0x3.0x1 \
>>     -device vfio-pci,host=07:00.0,id=hostdev2,bus=pci.0,addr=0x4 \
>>     -vga none \
>>     -soundhw hda \
>>     -device virtio-rng-pci \
>>     -chardev stdio,id=seabios \
>>     -device isa-debugcon,iobase=0x402,chardev=seabios \
>>     -msg timestamp=on \
>>     >>/var/log/kvm/12-wingame.stdout 2>>/var/log/kvm/12-wingame.stderr &
>>
>> Usually I don't manage to get any error, though once the host managed to
>> spit out this to console (when it crashed after 2 minutes with amd driver)
>>
>> INFO: rcu_sched detected stalls on CPUs/tasks:
>> [ 1558.573332]     2-...: (0 ticks this GP) idle=a16/0/0
>> softirq=17601/17601 fqs=1
>> [ 1558.573400]     17-...: (1 GPs behind) idle=9c8/0/0
>> softirq=13311/13311 fqs=1
>> [ 1558.573452]     20-...: (24 GPs behind) idle=be0/0/0
>> softirq=30971/30972 fqs=1
>> [ 1558.573505]     21-...: (4 GPs behind) idle=4a0/0/0
>> softirq=26182/26183 fqs=1
>> [ 1558.573557]     23-...: (0 ticks this GP) idle=b45/140000000000000/0
>> softirq=30549/30549 fqs=1
>> [ 1558.573615]     (detected by 14, t=5252 jiffies, g=47014, c=47013,
>> q=40045)
>> [ 1558.573670] Task dump for CPU 2:
>> [ 1558.573672] swapper/2       R  running task        0     0      1
>> 0x00200008
>> [ 1558.573680]  0000000000000083 640fb4432252d28b 0000016601c54f00
>> 0000000000000002
>> [ 1558.573685]  ffffffffb78b2320 0000000000000004 ffffffffb7205d60
>> ffffffffb78b2320
>> [ 1558.573689]  ffffc24a4028a0d0 ffffffffb78b2518 0000000000000005
>> ffffffffb70cbb2a
>> [ 1558.573693] Call Trace:
>> [ 1558.573705]  [<ffffffffb7205d60>] ? intel_idle+0x100/0x110
>> [ 1558.573712]  [<ffffffffb70cbb2a>] ? cpuidle_enter_state+0xea/0x2b0
>> [ 1558.573717]  [<ffffffffb6cb9504>] ? cpu_startup_entry+0x154/0x240
>> [ 1558.573721]  [<ffffffffb6c4805d>] ? start_secondary+0x14d/0x190
>> [ 1558.573724] Task dump for CPU 17:
>> [ 1558.573726] swapper/17      R  running task        0     0      1
>> 0x00200008
>> [ 1558.573729]  0000000000000083 fc4308ad94b8ed74 0000016749d5af00
>> 0000000000000011
>> [ 1558.573734]  ffffffffb78b2320 0000000000000004 ffffffffb7205d60
>> ffffffffb78b2320
>> [ 1558.573737]  ffffc24a4044a0d0 ffffffffb78b2518 0000000000000005
>> ffffffffb70cbb2a
>> [ 1558.573741] Call Trace:
>> [ 1558.573746]  [<ffffffffb7205d60>] ? intel_idle+0x100/0x110
>> [ 1558.573750]  [<ffffffffb70cbb2a>] ? cpuidle_enter_state+0xea/0x2b0
>> [ 1558.573753]  [<ffffffffb6cb9504>] ? cpu_startup_entry+0x154/0x240
>> [ 1558.573756]  [<ffffffffb6c4805d>] ? start_secondary+0x14d/0x190
>> [ 1558.573758] Task dump for CPU 20:
>> [ 1558.573759] swapper/20      R  running task        0     0      1
>> 0x00200008
>> [ 1558.573763]  0000000000000083 39fde3c30b22afa7 0000016b9477af00
>> 0000000000000014
>> [ 1558.573767]  ffffffffb78b2320 0000000000000004 ffffffffb7205d60
>> ffffffffb78b2320
>> [ 1558.573771]  ffffc24a4050a0d0 ffffffffb78b2518 0000000000000005
>> ffffffffb70cbb2a
>> [ 1558.573774] Call Trace:
>> [ 1558.573778]  [<ffffffffb7205d60>] ? intel_idle+0x100/0x110
>> [ 1558.573782]  [<ffffffffb70cbb2a>] ? cpuidle_enter_state+0xea/0x2b0
>> [ 1558.573785]  [<ffffffffb6cb9504>] ? cpu_startup_entry+0x154/0x240
>> [ 1558.573788]  [<ffffffffb6c4805d>] ? start_secondary+0x14d/0x190
>> [ 1558.573790] Task dump for CPU 21:
>> [ 1558.573792] swapper/21      R  running task        0     0      1
>> 0x00200008
>> [ 1558.573795]  0000000000000083 6b8f35123dc25bdb 0000016b9477af00
>> 0000000000000015
>> [ 1558.573799]  ffffffffb78b2320 0000000000000004 ffffffffb7205d60
>> ffffffffb78b2320
>> [ 1558.573803]  ffffc24a4054a0d0 ffffffffb78b2518 0000000000000005
>> ffffffffb70cbb2a
>> [ 1558.573806] Call Trace:
>> [ 1558.573810]  [<ffffffffb7205d60>] ? intel_idle+0x100/0x110
>> [ 1558.573814]  [<ffffffffb70cbb2a>] ? cpuidle_enter_state+0xea/0x2b0
>> [ 1558.573817]  [<ffffffffb6cb9504>] ? cpu_startup_entry+0x154/0x240
>> [ 1558.573820]  [<ffffffffb6c4805d>] ? start_secondary+0x14d/0x190
>> [ 1558.573822] Task dump for CPU 23:
>> [ 1558.573824] qemu-system-x86 R  running task        0 18608      1
>> 0x00000800
>> [ 1558.573827]  0000000000000000 ffffffffc1551560 0000000000000000
>> 0000000000000000
>> [ 1558.573831]  ffff9404e1c00040 ffffffffc153d9a7 0000000000000000
>> ffff9404e1c02760
>> [ 1558.573835]  ffffffffc1519882 0000000000000000 ffff9404e1c02760
>> 0000000000000004
>> [ 1558.573839] Call Trace:
>> [ 1558.573882]  [<ffffffffc153d9a7>] ? x86_emulate_insn+0x257/0xcf0 [kvm]
>> [ 1558.573909]  [<ffffffffc1519882>] ?
>> emulator_pio_in_emulated+0x102/0x190 [kvm]
>> [ 1558.573937]  [<ffffffffc1539d31>] ? writeback+0x61/0x210 [kvm]
>> [ 1558.573962]  [<ffffffffc1535e1d>] ? writeback_registers+0x4d/0x60 [kvm]
>> [ 1558.573972]  [<ffffffffc09dc21f>] ? atomic_switch_perf_msrs+0x6f/0xa0
>> [kvm_intel]
>> [ 1558.574011]  [<ffffffffc15252e3>] ?
>> kvm_arch_vcpu_ioctl_run+0x6b3/0x1600 [kvm]
>> [ 1558.574035]  [<ffffffffc151f2fb>] ? kvm_arch_vcpu_load+0x5b/0x270 [kvm]
>> [ 1558.574039]  [<ffffffffb6c30765>] ? __kernel_fpu_end+0x35/0x100
>> [ 1558.574059]  [<ffffffffc150b4b5>] ? kvm_vcpu_ioctl+0x315/0x5d0 [kvm]
>> [ 1558.574063]  [<ffffffffb6ca1800>] ? wake_up_q+0x70/0x70
>> [ 1558.574066]  [<ffffffffb6cb8799>] ? __wake_up_common+0x49/0x80
>> [ 1558.574069]  [<ffffffffb6e1603f>] ? do_vfs_ioctl+0x9f/0x600
>> [ 1558.574092]  [<ffffffffc151b898>] ? kvm_on_user_return+0x68/0xa0 [kvm]
>> [ 1558.574094]  [<ffffffffb6e16614>] ? SyS_ioctl+0x74/0x80
>> [ 1558.574111]  [<ffffffffb720627b>] ? system_call_fast_compare_end+0
>> xc/0x9b
>> [ 1558.574116] rcu_sched kthread starved for 5248 jiffies! g47014 c47013
>> f0x2 RCU_GP_WAIT_FQS(3) ->state=0x100
>> [ 1558.574186] rcu_sched       W    0     8      2 0x00000000
>> [ 1558.574189]  ffff9414d1facc00 0000000000000000 ffff9404f8c3e080
>> ffff9404ffad8240
>> [ 1558.574193]  ffff9404f8c6f0c0 ffffa25a400b7db0 ffffffffb72015d3
>> ffffa25a400b7de0
>> [ 1558.574197]  000000010004b899 ffff9404ffad8240 0000000000000003
>> ffff9404f8c3e080
>> [ 1558.574201] Call Trace:
>> [ 1558.574205]  [<ffffffffb72015d3>] ? __schedule+0x233/0x6d0
>> [ 1558.574208]  [<ffffffffb7201aa2>] ? schedule+0x32/0x80
>> [ 1558.574211]  [<ffffffffb7204dae>] ? schedule_timeout+0x17e/0x310
>> [ 1558.574217]  [<ffffffffb6ce3e50>] ? del_timer_sync+0x50/0x50
>> [ 1558.574220]  [<ffffffffb6cdd605>] ? rcu_gp_kthread+0x505/0x850
>> [ 1558.574223]  [<ffffffffb6cb8799>] ? __wake_up_common+0x49/0x80
>> [ 1558.574226]  [<ffffffffb6cdd100>] ? rcu_note_context_switch+0xe0/0xe0
>> [ 1558.574230]  [<ffffffffb6c965d7>] ? kthread+0xd7/0xf0
>> [ 1558.574234]  [<ffffffffb6c96500>] ? kthread_park+0x60/0x60
>> [ 1558.574238]  [<ffffffffb72064f5>] ? ret_from_fork+0x25/0x30
>>
>> Thanks,
>> Gh.
>>
>>
>> _______________________________________________
>> 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/20170822/4e055908/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: win10.xml
Type: text/xml
Size: 4167 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20170822/4e055908/attachment.xml>


More information about the vfio-users mailing list