Performance Improvements in VMs by adjusting CPU pinning and assignment


Recommended Posts

  • 2 weeks later...

Hello, i'm kinda new on KVM and virtualization. And mostly new on Threadrippers. I made a build a month ago and just found out what was the cause of my unstable system (RAM XMP... ) anyway. Now its rock solid.
And trying to optimize my daily driver VM and dockers with cpu pinning.
I read first pages of this thread but i got more confused in the end :P 
I would really like some of your suggestions on my setup and i could give back any info/tests if you want!

Mostly need help on which cores to assigned based on the CPU topology and making modifications on XML about cpu topology and ram assigment. 

My CPU is: Threadripper 2920x (12C24T) - GPU RX5700 8GB- 32GB Ram
My setup / needs are:

Well Unraid - It should be good with 2 Cores i guess, i dont have more than 2 people copying from/to array and of them is me from the VM!
 

VMS
*Windows VM for Gaming with NVME on unassigned devices(not on cache) and RX5700 (Damn Navi bug.. ) - Will run only while gaming - 6 Cores/16gb ram? Had issues on Borderlands 3 when running under 18GB Ram. Was running out of memory. 

*Linux VM for daily use (Not need much power and soon will have a cheap gpu passed) 2 cores/4GB Ram should be ok - Will run 24/7 - 4GB Ram should be ok

*pfSense VM as router/firewall - 2 Cores/4GB Ram should be enough. - Will run 24/7

 

Lightweight Dockers

(those should all run fine with 1 core) - dont care if the slow down, as those dockers dont do anything important.

*sonarr

*radarr

*bazarr

*tautulli

*jackett

*deluge

*duckdns

*MQTT

*Home-assistant

*unifi-controller

 

Heaveweight Dockers

*Handbrake - This will never run while gaming so it can be assigned the same cores as gaming vm.

*Plex - All my files are x264 so not much transcoding needed. Max 3 streams concurrently and 2 of the local.

 

CPU Pairs as taken from VM Editor of Unraid

CPU 0   -  HT 12

CPU 1    -  HT 13

CPU 2   -  HT 14

CPU 3   -  HT 15

CPU 4   -  HT 16

CPU 5   -  HT 17

CPU 6   -  HT 18

CPU 7   -  HT 19

CPU 8   -  HT 20

CPU 9   -  HT 21

CPU 10  -  HT 22

CPU 11   -  HT 23

 


Thanks! If i should add more info, please tell me what is this you need!

Edited by skois
Link to comment

Did some on/off node testing with a TR 2990WX (off node = no direct access to ram/devices). Configured a VM with four numa nodes with two CPU's each (4 with HT) and 4 GB of RAM (1 GB per VM numa node), all set to hit against the same physical numa node. Tests were done on UNRAID 6.8.1 RC1 with the TR being passed through and the guest seeing both the hyperthreaded CPUs & NUMA nodes. Benchmarks were Cinemark R20 for CPU and AIDA64 for memory. Each score is an average of 5 runs with outlayers dropped (tested too far off the variance). Each pass moved a VM node from a numa node with direct access to one without.

On Numa   R20   Read  Write   Copy  Latency
4        3663  31944  32558  32159     93.5
3        3645  30786  30483  30292     93.7
2        3587  27387  29982  27557     93.6
1        3607  19153  19809  20805     93.5
0        3526  14693  15097  17033    162.1

CPU scores saw a diminishing gain as the CPU's got moved off to a numa node without direct memory access as expected by the evenly spread score was surprisingly low. Memory scores shows a clear benefit to having at least one CPU on node in memory access with the times being negatively impacted nearly 100% being completely isolated.

  • Thanks 1
Link to comment
  • 2 weeks later...
On 11/13/2019 at 9:02 AM, bastl said:

I have been using unRAID as my daily driver, and only computer, for about 14 months now. Getting my windows 10 VM to recognize this SMT just gained me like 25% performance, and fixed my microstutter problem in games!

Link to comment
  • 2 months later...

What are the best settings for Ryzen 1700X on a Asus Crosshair X470 and latest bios?

 

I’d like to move to using only VM as my daily workstation but haven’t been able to get the single core performance good enough for gaming for example. With RX 5700 XT I lose about 30-40% of it’s performance when compared to a baremetal and I think it’s mostly because of this reason. I benchmarked my CPU with Cinebench 15 and while multithreading it’s actually pretty close to a baremetal, the single core performance is really poor.


So... I’ve only isolated and pinned the last cores (4/8)to a fresh Windows 10 VM using Unraid GUI and left the first cores for Unraid. What else do I have to do to improve CPU performance? I hope I could get this sorted out so I can order 3900X and really go all in. 

Link to comment
  • 5 months later...

So, I have done two windows vm's on my xeon 10core 3.1ghz.

 

I have arranged the core assignment, as indicated in the op.  

I can't figure out how to change from SeaBIOS.  It is grayed out. I am running Nvidia cards, so maybe not good to switch??

Also not sure how to isolate the first two cores for the server. Is that with Docker?

 

It is mentioned that you shouldn't start with more than 8 gigs.  I had already assigned more than that, given that I have 64.

 

From "pushing the power button" to both vm's ready for log in, we are looking at 6.5min.  Seems like a long time

The following are my two machine set up's

IMG_1352.jpg

IMG_1355.jpg

Edited by 22350
MISSING IMAGE
Link to comment
  • 1 month later...
14 hours ago, rojarrolla said:

Hi, I have a question, I created a Win 2008 Server VM.

 

For installing, I used 1 core no HT, but after the installation, I try to add more cores and threads, and then the system detects a "hardware" change and becomes useless.

 

Any Idea of how to fix it?

 

Thanks!

That's a Win2008 Server issue and unrelated to KVM. Try reinstalling with the desired number of cores or try to re-register.

Link to comment
11 hours ago, jbartlett said:

Try installing it with one core but after the first reboot during the install, update the core count before Windows locks things down.

Hello, Thanks, I've tried as you said. There are 2 reboots when installing, I tried in each one of them and the result is the same, I get the message from windows telling me that the system has changed. 

 

There should be other way, I'll keep searching :)

 

Link to comment
  • 2 months later...
On 1/21/2020 at 8:47 PM, tsawind said:

I have been using unRAID as my daily driver, and only computer, for about 14 months now. Getting my windows 10 VM to recognize this SMT just gained me like 25% performance, and fixed my microstutter problem in games!

Hey, I've been having a microstuttering problems. What did you do to fix this? I have a 3900X.

Link to comment
  • 1 month later...

Hi,

 

i have a AMD Ryzen 7 5800x and i assigned 4 Cores + 4 HT Cores. But i have a really bad perfomance on it, i measure it with 3dmark.

Baremetal: 12.329 Score

Unraid VM: 5.820 Score

 

I isolated the cores and made the cpu pinning.

 

Can someone help me?

 

This is also my config:

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='4'>
  <name>Windows 10</name>
  <uuid>508ccb34-ad84-6c40-60c5-aec62d8f2b67</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>20971520</memory>
  <currentMemory unit='KiB'>20971520</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='12'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='13'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='14'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <vcpupin vcpu='7' cpuset='15'/>
    <emulatorpin cpuset='0,11'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-5.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/508ccb34-ad84-6c40-60c5-aec62d8f2b67_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='2D76A8B352E2'/>
    </hyperv>
    <kvm>
      <hidden state='on'/>
    </kvm>
    <ioapic driver='kvm'/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/Windows 10/vdisk1.img' index='1'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f9:83:1c'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio-net'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-4-Windows 10/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='4'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/user/appdata/VBIOS/MSIRTX3070_MOD.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='5'/>
      </source>
      <alias name='hostdev1'/>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc539'/>
        <address bus='1' device='4'/>
      </source>
      <alias name='hostdev2'/>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x048d'/>
        <product id='0x5702'/>
        <address bus='1' device='2'/>
      </source>
      <alias name='hostdev3'/>
      <address type='usb' bus='0' port='3'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

Link to comment
  • 1 month later...

Hi I have very low fps on bf v i only get 14-20 fps on low settings

I have a dual xeon e5-2860 2,8ghz 112 gb ram

my wm have 12 cores and 16 gb and 3060 ti 

 

here are my xml settings for right now

I have try more cpu less cpu more ram less ram

but in loading meny i have over 250 Fps

and in begining I have 35-40 fps but it drops down to 14-20 after 5 min playing

i have check temps on cpu it only 55 C

 

<?xml version='1.0' encoding='UTF-8'?>

<domain type='kvm' id='3'>

  <name>Windows 10 test</name>

  <uuid>b04e314d-9a1b-182a-3e0e-ce3d8fd55bfa</uuid>

  <metadata>

    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>

  </metadata>

  <memory unit='KiB'>17301504</memory>

  <currentMemory unit='KiB'>17301504</currentMemory>

  <memoryBacking>

    <nosharepages/>

  </memoryBacking>

  <vcpu placement='static'>12</vcpu>

  <cputune>

    <vcpupin vcpu='4' cpuset='6'/>

    <vcpupin vcpu='5' cpuset='26'/>

    <vcpupin vcpu='6' cpuset='7'/>

    <vcpupin vcpu='7' cpuset='27'/>

    <vcpupin vcpu='8' cpuset='8'/>

    <vcpupin vcpu='9' cpuset='28'/>

  </cputune>

  <numatune>

    <memory mode='strict' nodeset='0'/>

  </numatune>

  <resource>

    <partition>/machine</partition>

  </resource>

  <os>

    <type arch='x86_64' machine='pc-q35-5.1'>hvm</type>

    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>

    <nvram>/etc/libvirt/qemu/nvram/b04e314d-9a1b-182a-3e0e-ce3d8fd55bfa_VARS-pure-efi.fd</nvram>

  </os>

  <features>

    <acpi/>

    <apic/>

    <hyperv>

      <relaxed state='on'/>

      <vapic state='on'/>

      <spinlocks state='on' retries='8191'/>

      <vendor_id state='on' value='none'/>

    </hyperv>

  </features>

  <cpu mode='host-passthrough' check='none' migratable='on'>

    <topology sockets='1' dies='1' cores='6' threads='2'/>

    <cache mode='passthrough'/>

  </cpu>

  <clock offset='localtime'>

    <timer name='hypervclock' present='yes'/>

    <timer name='hpet' present='no'/>

  </clock>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>restart</on_crash>

  <devices>

    <emulator>/usr/local/sbin/qemu</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw' cache='writeback'/>

      <source file='/mnt/disks/Samsung_SSD_870_QVO_1TB_S5SVNG0NA00376B/Windows 10/vdisk1.img' index='4'/>

      <backingStore/>

      <target dev='hdc' bus='virtio'/>

      <boot order='1'/>

      <alias name='virtio-disk2'/>

      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>

    </disk>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw' cache='writeback'/>

      <source file='/mnt/disks/Samsung_SSD_870_QVO_1TB_S5SVNG0NA00376B/Windows 10/Windows 10/vdisk2.img' index='3'/>

      <backingStore/>

      <target dev='hdd' bus='virtio'/>

      <alias name='virtio-disk3'/>

      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>

    </disk>

    <disk type='file' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/user/isos/Windows.iso' index='2'/>

      <backingStore/>

      <target dev='hda' bus='sata'/>

      <readonly/>

      <boot order='2'/>

      <alias name='sata0-0-0'/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    </disk>

    <disk type='file' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/user/isos/virtio-win-0.1.173-2.iso' index='1'/>

      <backingStore/>

      <target dev='hdb' bus='sata'/>

      <readonly/>

      <alias name='sata0-0-1'/>

      <address type='drive' controller='0' bus='0' target='0' unit='1'/>

    </disk>

    <controller type='usb' index='0' model='ich9-ehci1'>

      <alias name='usb'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>

    </controller>

    <controller type='usb' index='0' model='ich9-uhci1'>

      <alias name='usb'/>

      <master startport='0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>

    </controller>

    <controller type='usb' index='0' model='ich9-uhci2'>

      <alias name='usb'/>

      <master startport='2'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>

    </controller>

    <controller type='usb' index='0' model='ich9-uhci3'>

      <alias name='usb'/>

      <master startport='4'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>

    </controller>

    <controller type='pci' index='0' model='pcie-root'>

      <alias name='pcie.0'/>

    </controller>

    <controller type='pci' index='1' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='1' port='0x8'/>

      <alias name='pci.1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>

    </controller>

    <controller type='pci' index='2' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='2' port='0x9'/>

      <alias name='pci.2'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

    </controller>

    <controller type='pci' index='3' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='3' port='0xa'/>

      <alias name='pci.3'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

    </controller>

    <controller type='pci' index='4' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='4' port='0xb'/>

      <alias name='pci.4'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>

    </controller>

    <controller type='pci' index='5' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='5' port='0xc'/>

      <alias name='pci.5'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>

    </controller>

    <controller type='pci' index='6' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='6' port='0xd'/>

      <alias name='pci.6'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>

    </controller>

    <controller type='pci' index='7' model='pcie-to-pci-bridge'>

      <model name='pcie-pci-bridge'/>

      <alias name='pci.7'/>

      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>

    </controller>

    <controller type='pci' index='8' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='8' port='0xe'/>

      <alias name='pci.8'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/>

    </controller>

    <controller type='pci' index='9' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='9' port='0xf'/>

      <alias name='pci.9'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x7'/>

    </controller>

    <controller type='pci' index='10' model='pcie-root-port'>

      <model name='pcie-root-port'/>

      <target chassis='10' port='0x10'/>

      <alias name='pci.10'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </controller>

    <controller type='virtio-serial' index='0'>

      <alias name='virtio-serial0'/>

      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

    </controller>

    <controller type='sata' index='0'>

      <alias name='ide'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:ab:ad:4b'/>

      <source bridge='br0'/>

      <target dev='vnet2'/>

      <model type='virtio-net'/>

      <alias name='net0'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>

    </interface>

    <serial type='pty'>

      <source path='/dev/pts/2'/>

      <target type='isa-serial' port='0'>

        <model name='isa-serial'/>

      </target>

      <alias name='serial0'/>

    </serial>

    <console type='pty' tty='/dev/pts/2'>

      <source path='/dev/pts/2'/>

      <target type='serial' port='0'/>

      <alias name='serial0'/>

    </console>

    <channel type='unix'>

      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-3-Windows 10 test/org.qemu.guest_agent.0'/>

      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>

      <alias name='channel0'/>

      <address type='virtio-serial' controller='0' bus='0' port='1'/>

    </channel>

    <input type='mouse' bus='ps2'>

      <alias name='input0'/>

    </input>

    <input type='keyboard' bus='ps2'>

      <alias name='input1'/>

    </input>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>

      </source>

      <alias name='hostdev0'/>

      <rom file='/mnt/user/isos/vbios/3060ti gpu vbios.rom'/>

      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

    </hostdev>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>

      </source>

      <alias name='hostdev1'/>

      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>

    </hostdev>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/>

      </source>

      <alias name='hostdev2'/>

      <address type='pci' domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>

    </hostdev>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>

      </source>

      <alias name='hostdev3'/>

      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>

    </hostdev>

    <hostdev mode='subsystem' type='pci' managed='yes'>

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x0b' slot='0x00' function='0x0'/>

      </source>

      <alias name='hostdev4'/>

      <address type='pci' domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>

    </hostdev>

    <memballoon model='none'/>

  </devices>

  <seclabel type='dynamic' model='dac' relabel='yes'>

    <label>+0:+100</label>

    <imagelabel>+0:+100</imagelabel>

  </seclabel>

</domain>

Link to comment
  • 1 month later...

Hi folks,

just wanted to share what helped for me.

 

Short Answer

Go to Windows sound manager and play around with the sample rate of your audio output (try 44kHz and 48kHz in particular)

 

Long Answer

After trying the CPU pinning and emulator pinning as suggested (great hint btw.), nothing seemed to work and it even got worse as my audio engine begin to lag for 4-20 seconds every minute PLUS the cracking and stuttering which had been present from the beginning on. I don't know exactly why, but somehow the VM seems to have struggles with down-sampling the audio, so I set all inputs and outputs to the highest sample rate (48000 Hz) and everything works fine.

 

The setup:

  • hyper-threading disabled
  • No cores isolated in the boot config
  • Cores 0-7 pinned to VM
  • Emulator tasks pinned to cores 8,9
  • All audio devices use 48kHz

I hope that someone can benefit from this minor discovery...

 

best wishes,

TheClockTwister

Link to comment
  • 3 months later...
  • 3 months later...

I have i7-10510U with 4C/8T with underwhelming performance.

Pairs doesn't go like 0-4 or 1,5... Rather it's like:
 

Quote

 

0,1

2,3

4,5

6,7

 

 

Problem is when I isolate last 3 cpu's giving emulatorpin+iothread to the first cpu (0,1) I get worse performance than doing (0,4) or EVEN (0,5).

 

How can this happen?

Edited by dqmhug
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.