[vfio-users] Huge performance decrease in VM
Marius Steffen
marius.steffen at posteo.de
Fri Jan 6 22:18:16 UTC 2017
I already did, IIRC, using two physical cores + their associated
hyperthreads. Or do you meant using all 4 physical cores? Anyway, I'll
try isolcpus and fiddling with the options you mentioned.
Regarding the ck patches, I'm using linux-lqx(Liquorix), with MUQSS
enabled, to decrease latency (also tried linux-rt, but that didn't
change anything).
Thanks,
Marius
Am 06.01.2017 um 13:36 schrieb Janusz:
> use reply to all.
> don't use all cores, use only half of them, try isolcpus, you can try
> http://ck-hack.blogspot.com/
> when you decrease number of cores change host-passthrough to host-model,
> disable hypervisor.
> My setup isn't perfect, but I have gpu performance close to native:
> https://paste.pound-python.org/show/eGf746XJsdtYrA1GEVIl/ but I have i7
> 6700k so I had to turn off some of hyperv because native were better.
>
>
> On 01/06/2017 01:29 PM, Marius Steffen wrote:
>> Of course, sorry, I forgot to attach it:
>>
>> <domain type='kvm'
>> xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
>> <name>game_win_v2</name>
>> <uuid>5c7150f7-7f7c-4265-acd5-6bed59a10192</uuid>
>> <memory unit='KiB'>10485760</memory>
>> <currentMemory unit='KiB'>10485760</currentMemory>
>> <vcpu placement='static'>8</vcpu>
>> <cputune>
>> <vcpupin vcpu='0' cpuset='0'/>
>> <vcpupin vcpu='1' cpuset='1'/>
>> <vcpupin vcpu='2' cpuset='2'/>
>> <vcpupin vcpu='3' cpuset='3'/>
>> <vcpupin vcpu='4' cpuset='4'/>
>> <vcpupin vcpu='5' cpuset='5'/>
>> <vcpupin vcpu='6' cpuset='6'/>
>> <vcpupin vcpu='7' cpuset='7'/>
>> </cputune>
>> <os>
>> <type arch='x86_64' machine='pc-i440fx-2.6'>hvm</type>
>> <loader readonly='yes'
>> type='pflash'>/usr/local/share/ovmf-git/x64/OVMF_CODE.fd</loader>
>> <nvram>/var/lib/libvirt/qemu/nvram/game_win_v2_VARS.fd</nvram>
>> </os>
>> <features>
>> <acpi/>
>> <apic/>
>> <hyperv>
>> <relaxed state='on'/>
>> <vapic state='on'/>
>> <spinlocks state='on' retries='8191'/>
>> <vendor_id state='on' value='Apfelbaum'/>
>> </hyperv>
>> <kvm>
>> <hidden state='on'/>
>> </kvm>
>> <vmport state='off'/>
>> </features>
>> <cpu mode='host-passthrough'>
>> <topology sockets='1' cores='4' threads='2'/>
>> </cpu>
>> <clock offset='localtime'>
>> <timer name='rtc' tickpolicy='catchup'/>
>> <timer name='pit' tickpolicy='delay'/>
>> <timer name='hpet' present='no'/>
>> <timer name='hypervclock' present='yes'/>
>> </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/sbin/qemu-system-x86_64</emulator>
>> <disk type='file' device='disk'>
>> <driver name='qemu' type='raw' cache='none' io='native'/>
>> <source file='/home/marius/.virt_ssd_speicher/virt_fast.img'/>
>> <target dev='sda' bus='scsi'/>
>> <boot order='2'/>
>> <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>> </disk>
>> <disk type='file' device='disk'>
>> <driver name='qemu' type='raw' cache='none' io='native'/>
>> <source file='/media/virt/VM Speicher/win_game_v2.img'/>
>> <target dev='sdb' bus='scsi'/>
>> <address type='drive' controller='0' bus='0' target='0' unit='1'/>
>> </disk>
>> <controller type='scsi' index='0' model='virtio-scsi'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
>> function='0x0'/>
>> </controller>
>> <controller type='virtio-serial' index='0'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
>> function='0x0'/>
>> </controller>
>> <controller type='pci' index='0' model='pci-root'/>
>> <controller type='usb' index='0' model='ich9-ehci1'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>> function='0x7'/>
>> </controller>
>> <controller type='usb' index='0' model='ich9-uhci1'>
>> <master startport='0'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>> function='0x0' multifunction='on'/>
>> </controller>
>> <controller type='usb' index='0' model='ich9-uhci2'>
>> <master startport='2'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>> function='0x1'/>
>> </controller>
>> <controller type='usb' index='0' model='ich9-uhci3'>
>> <master startport='4'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>> function='0x2'/>
>> </controller>
>> <interface type='network'>
>> <mac address='52:54:00:97:db:d2'/>
>> <source network='inet'/>
>> <model type='rtl8139'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
>> function='0x0'/>
>> </interface>
>> <interface type='network'>
>> <mac address='52:54:00:bb:d0:e5'/>
>> <source network='host_only'/>
>> <model type='rtl8139'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x09'
>> function='0x0'/>
>> </interface>
>> <input type='mouse' bus='ps2'/>
>> <input type='keyboard' bus='ps2'/>
>> <sound model='ac97'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x07'
>> function='0x0'/>
>> </sound>
>> <hostdev mode='subsystem' type='pci' managed='yes'>
>> <source>
>> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
>> </source>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
>> function='0x0'/>
>> </hostdev>
>> <memballoon model='virtio'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
>> function='0x0'/>
>> </memballoon>
>> </devices>
>> <qemu:commandline>
>> <qemu:env name='QEMU_ALSA_DAC_BUFFER_SIZE' value='512'/>
>> <qemu:env name='QEMU_ALSA_DAC_PERIOD_SIZE' value='170'/>
>> <qemu:env name='QEMU_AUDIO_DRV' value='alsa'/>
>> <qemu:env name='QEMU_AUDIO_DAC_FIXED_FREQ' value='44100'/>
>> <qemu:env name='QEMU_AUDIO_ADC_FIXED_FREQ' value='44100'/>
>> </qemu:commandline>
>> </domain>
>>
>>
>> Marius
>>
>>
>> Am 06.01.2017 um 13:24 schrieb Janusz:
>>> share your vm xml/qemu command, so we can see what you are doing wrong.
>>>
>>> On 01/06/2017 01:00 PM, Marius Steffen wrote:
>>>> Hi,
>>>> I'm running my VM on Arch for quite some time now, with varying success
>>>> on this hardware:
>>>>
>>>> - NVIDIA GTX 1070
>>>> - 16 GB RAM (10 GB passed through to VM, tested with/without hugepages)
>>>> - i7 3770 (4 Cores, 4 Hyperthreads, various combinations tested)
>>>> - virtualized OS is Windows 10 Home x64
>>>>
>>>> Arch is using my iGPU (unvirtualized), usally running KDE Plasma 5, but
>>>> I also tried without running any X-Session.
>>>>
>>>> As I recently noticed when upgrading my GPU from a GTX 680 to my
>>>> current
>>>> GTX 1070, there's an extremely huge performance impact compared to
>>>> running on native Windows.
>>>> When playing Just Cause 3, this was especially noteable: I've often got
>>>> only 40-50 FPS, compared to 75-120+ FPS in Windows 10, and my GPU being
>>>> used just about 20% or so in the VM.
>>>>
>>>> Is there anything I can do to a) find the cause of this bad performance
>>>> b) make my VM perform better?
>>>>
>>>> Greetings,
>>>>
>>>> Marius
>>>>
>>>>
>>>> _______________________________________________
>>>> vfio-users mailing list
>>>> vfio-users at redhat.com
>>>> https://www.redhat.com/mailman/listinfo/vfio-users
More information about the vfio-users
mailing list