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.

Hybrid CPU and good isolation/pinning practices for gaming

Featured Replies

I will soon receive an Intel i7 13700 (8 P cores, 8 E cores) to hopefully configure a 1 tower 2 gaming VM setup (nothing else, no docker, no NAS, ...).

 

My plan is the following :

  • 4 isolated P cores (+ HT) for the first VM + 2 isolated E cores for the emulator (emulatorpin) + RTX 4070 ;
  • 3 isolated P cores for the second VM + 1 pinned-only P core (cpu 0 cannot be isolated to the best of my knowledge) + 2 isolated E cores for the emulator + RTX 4060 ;
  • 4 E cores for UNRAID.

 

My questions are the following :

  1. Since the host should not be too busy, is it a good idea to pin the first unisolated P core to the second VM ? or shall I expect performance drop anyway ?
  2. Would one isolated E core per VM be sufficient for handling emulation stuffs (emulator pin) ?
  3. Would it be a good idea to isolate+pin additional E cores to the gaming VMs ? Do UNRAID and/or guest and/or gaming apps handle hybrid CPU correctly ? I've read a lot on that topic, but nothing very recent.
  4. Are 4 P cores / 8 T sufficient for running recent AAA titles ? Max resolution will be 2K.

 

Any other suggestion ?

 

All the best,

  • Author

Hello,

 

Do you think installing a tool such as https://github.com/sas41/ProcessAffinityControlTool within the guest could help ? In theory, it could allow games to be automatically pinned (affinities set) to P cores even if the guest OS itself has no information about them (of course E cores would still be there for background tasks).

 

All the best,

  • 1 year later...

Interesting your solution, I am also making several attempts with a 13600K for a Gaming VM with Windows 11.

I personally for now am using all my 6 P Cores (12 threads) for Windows and 2 E Cores as Emulator Pins, while the remaining 6 E Cores I left to Unraid.


Too bad no one talked in this post, how do you eventually handle cpu pinning?

  • Author

Hello,

 

I followed my initial plan (cf. my first message), except that I finally left the first P core (cpu 0) and its HT friend to UNRAID to avoid any trouble (I never found any answer to my first question). After following some guides/tutorials to enable Hyper-V enlightenments and optimize my VM, I eventually got amazing performances :) If someone can give me some hints on this topic, I am sure I can even do better.

 

(The two VM are used everyday. Since then I even wrote a small CLI client and an Android app to start the tower and the VMs on demand. All is powered off automatically when the last VM shuts down.)

 

It seems, however, that the emulator does not take advantage of the two pinned E processors. It seems that libvirt (and what runs behind the scene --- I'm not an expert) does not parallelize anything.

 

Best regards,

Hello,

 

so you didn't put any emulator pin cores to the vm, and you put all the E Cores to Unraid along with the first P Core, while all the remaining P Cores are assigned to the VMs, right?

 

Could you tell me what steps or guidance you performed to enable Hyper-V enlightenments and optimize your VM, I would be very grateful.
Yes it would be nice, if other people would bring their advice and experience here.

  • Author

Final config :

  1. 4 isolated P cores (+ HT) for the first  VM + 2 isolated E cores for the emulator (emulatorpin), even if, in practice, I think 1 E core would be sufficient, since nothing seems to be parallelized at this level + RTX 4070 ;
  2. 3 isolated P cores (+ HT) for the second VM + 2 isolated E cores for the emulator (same remark) + RTX 4060 ;
  3. 1 P core (+ HT), because it seems I cannot isolate cpu 0, unfortunately, and 4 E cores for UNRAID.

I think assigning an E core to the emulator is great. It means emulation tasks will not ruin the processors' caches.

 

For the Hyper-V enlightenments, I will send you my config in a couple of days.

Strange that you can't isolate the first core to the vm, I was able to isolate the first 6 P Cores (+ HT) to the vm. Yes I also put 2 E Core as emulatorpin

 

Yes as soon as you can send it to me that would be great, maybe I can improve something.

 

While with the Anti Cheats did you have any problems?

Some games I can't play, even though I mainly don't play multiplayer, however it would be nice to be able to try it every now and then.

 

  • Author

UNRAID allows you to isolate cpu 0, but it seems well known that the kernel just ignores it...

 

Indeed, I had problems with some Anti Cheats too 💀 For what I can remember, I solved all issues by configuring secure boot (FIFA) and set smbios mode to 'host' (Elden Ring). It was sufficient for me, but I don't play competitve games. These may have stricter rules.

  • Author
  ...
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='8'/>
    <vcpupin vcpu='1' cpuset='9'/>
    <vcpupin vcpu='2' cpuset='10'/>
    <vcpupin vcpu='3' cpuset='11'/>
    <vcpupin vcpu='4' cpuset='12'/>
    <vcpupin vcpu='5' cpuset='13'/>
    <vcpupin vcpu='6' cpuset='14'/>
    <vcpupin vcpu='7' cpuset='15'/>
    <emulatorpin cpuset='22-23'/>
  </cputune>
  ...
  <os>
    <type arch='x86_64' machine='pc-i440fx-7.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/..._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'/>
      <vpindex state='on'/>
      <synic state='on'/>
      <stimer state='on'/>
      <vendor_id state='on' value='none'/>
      <frequencies state='on'/>
    </hyperv>
    <ioapic driver='kvm'/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='off'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='yes'/>
    <timer name='tsc' present='yes' mode='native'/>
  </clock>
  • Author

Sorry for the delay. I just forgot it 🙃

Yes I mainly play the same games, so it's not a problem for me either. It just became a thing of mine to be able to play all the games even the multiplayer ones. Hopefully we won't have a problem with Elden Ring Nightreign.

 

Thanks for the reply, I will edit my vm as soon as I can

  • Author

I have experienced no problem with FromSoftware's last titles, namely Elden Ring (including its DLC, Shadow of the Erdtree) and Armored Core VI 🤞

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.