Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Adding more than 2 cores (and the HT pairs) to my Windows 10 VM causes major stuttering.

Featured Replies

Using a Ryzen 2700x.

 

I've tried various groupings of cores (always along with the grouped HT pair) and anything over two cores causes the entire vm (mouse included) to massively stutter every couple of seconds.

 

I've tried everything under the sun and this is the only way I can get a stutter-free Windows 10 VM.

  • 3 weeks later...
  • Author

Anyone?

No where near an expert, or even knowledgeable but, from reading the threads here is there a major latency problem because of NUMA pairing? (or something like that).

 

Maybe google "unraid numa"

  • Author

For some reason I thought Ryzen chips only had the one node or whatever. 

Check out the spaceinvaderone videos on installing lstopo which will give you a visual representation of your numa nodes, the CPU's & PCIe slots tied to them. This will help you pick your CPU assignments.

  • Author

Here's my lstopo output. Not exactly sure how to interpret it since it's a different type of CPU than spaceinvaderone's example. 

 

 

1.png

  • 2 weeks later...
  • Author

Anyone out there with some insight?

  • 4 weeks later...

Not sure if this was ever resolved, what cores are you typically passing through?

  • 1 month later...
  • Author

No, wasn't resolved. What cores I use doesn't seem to matter—adding more than 3 cores causes unfixable stutters. 

 

If I add a 4th, then reduce it back to 3, the stutters stay and can't be fixed. 

  • 3 weeks later...

I saw something like this today.  I tried it many times with little tweaks to the configs because I didn't believe what I was seeing, but you are right this is a thing!

 

I have a Ryzen 7 3800X on a ASUS ROG Strix x570-E board with bios 1405 AGESA 1.0.0.4 Patch B, and I saw significant input lag/stutter (i.e. mouse cursor skipping) when isolating CPUs from different CCXs.  I didn't even have to use them in the VM ... just isolating CPU cores in Unraid from different CCXs and starting the VM using cores for 1 CCX (or both) was enough to cause the lag.

 

Here is my CPU architecture which is similar to yours.  I passed the 2nd CCX (cores 4-7 & 12-15) and a HT core from the 1st CCX (cores 3 & 11) leaving the rest of the 1st CCX for Unraid during my testing.

 

topo_cogsworth_v3.thumb.png.7268d4e89a44487331364ee77b626432.png

 

This may be more complicated of an issue for me as I am having other VM stuttering issues which I posted about here. 


But I wanted to validate your finding!  You're not crazy!  

 

-JesterEE

  • Author

It's good to know I'm not crazy. 

 

Just to add another data point...I currently have cores 3, 5, and 7 isolated for my Windows VM. If I'm reading my architecture correctly, that's across two CCXs.

 

It runs perfect.

 

If I add another core—any core—guaranteed stuttering. My emulator is on core 0.

 

Luckily this is only a gaming VM, so three cores is enough, but I've never been able to solve it.

 

My MacOS VM that uses those cores plus core 1 runs like butter.

  • 1 year later...

Very interesting!

I have exactly the same problem.

I could not add more than 2 cores before the stuttering began in Windows, but I did not test the 3,5,7 combo, which actually works, so now I have 3 working cores, so thank you for that.

Also, MacOS runs as butter with more cores for me as well.

Any new findings in this matter, as the last post is over a year old?

Edited by joggs

  • 2 months later...
  • Author
Quote
On 1/8/2021 at 10:50 AM, joggs said:

Very interesting!

I have exactly the same problem.

I could not add more than 2 cores before the stuttering began in Windows, but I did not test the 3,5,7 combo, which actually works, so now I have 3 working cores, so thank you for that.

Also, MacOS runs as butter with more cores for me as well.

Any new findings in this matter, as the last post is over a year old?

 

 

I've actually since upgraded to a 3900x. 

 

But, before the upgrade the problem went away and I was able to add 4 cores. I don't know what updated or what changed, but something fixed it. 

 

I currently have 8 cores passed to both VMs (not simultaneously) and everything runs fine. 

 

No clue what changed. 

  • 3 years later...

I found your thread while discovering this issue myself.

My setup is cpu i9-12900k, Unraid version 6.12.13

 

Topology attached.

 

If i add more then 3 cores to my windows 11 vm i get bad stutters whenever i do anything heavy (like compiling) (funny enough, there is no stutter if i run cinebench)

 

Here is my xml

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='15'>
  <name>Windows 11</name>
  <uuid>77fe918b-c4ee-45b5-902f-b00928b24900</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm"/>
  </metadata>
  <memory unit='KiB'>17301504</memory>
  <currentMemory unit='KiB'>17301504</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
    <emulatorpin cpuset='0-1'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-7.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/cache/appdata/VM/ovmf/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/77fe918b-c4ee-45b5-902f-b00928b24900_VARS-pure-efi-tpm.fd</nvram>
    <smbios mode='host'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <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='3' threads='2'/>
  </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/cache/appdata/VM/domains/Windows 11/vdisk1.img' index='4'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <serial>vdisk1</serial>
      <boot order='2'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/appdata/VM/isos/Win11_23H2_EnglishInternational_x64v2.iso' index='3'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='1'/>
      <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/cache/appdata/VM/isos/virtio-win-0.1.262.iso' index='2'/>
      <backingStore/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <alias name='sata0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/disk/by-id/ata-APPLE_SSD_TS128C_31DS10JZTLMZ' index='1'/>
      <backingStore/>
      <target dev='hdd' bus='sata'/>
      <alias name='sata7-0-0'/>
      <address type='drive' controller='7' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='sata' index='1'>
      <alias name='sata1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </controller>
    <controller type='sata' index='2'>
      <alias name='sata2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <controller type='sata' index='3'>
      <alias name='sata3'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </controller>
    <controller type='sata' index='4'>
      <alias name='sata4'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </controller>
    <controller type='sata' index='5'>
      <alias name='sata5'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </controller>
    <controller type='sata' index='6'>
      <alias name='sata6'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </controller>
    <controller type='sata' index='7'>
      <alias name='sata7'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x08' function='0x0'/>
    </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-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x9'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0xa'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0xb'/>
      <alias name='pci.5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0xc'/>
      <alias name='pci.6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0xd'/>
      <alias name='pci.7'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:51:5e:71'/>
      <source bridge='br0'/>
      <target dev='vnet13'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' 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-15-Windows 11/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='mouse' bus='ps2'>
      <alias name='input0'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input1'/>
    </input>
    <tpm model='tpm-tis'>
      <backend type='emulator' version='2.0' persistent_state='yes'/>
      <alias name='tpm0'/>
    </tpm>
    <audio id='1' type='none'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <rom file='/mnt/cache/appdata/VM/bios-dump/amd_radeon_rx_550_Lexa.rom'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source startupPolicy='optional'>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='10'/>
      </source>
      <alias name='hostdev2'/>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

 

 

Not sure how to fix this, but i would really like to give more cores to the VM.

 

If anybody finds a solution, please reply.

 

 

 

i9-12900k_topology.png

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.