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.

Nested VMS Unraid 6.7.2 VMX Performance

Featured Replies

Hello guys,

 

is it possible to activate VMX for Qemu in Unraid 6.7.2.?

 

Iam using Passtrough-Mode with the "kvm_intel nested=1" in Autostart to run MS Hyper-V 2016 on my Unraid Setup.

Inside the HyperV 2016 Server i can use nested VMs without hassle when HyperV option enabled and pc-i440fx .

But the performance is absolutely horrible and everthing is lagging  behind.

 

When i switch do QMEU64 / KVM  CPU mode the Performance of my MS Hyper Server increases drastically. But the Intel VD-X Features are not exposed to it anymore, hence i cannot run nested VMs.

 

How can i expose VMX to my HyperV Host running on QEMU CPU Mode.

 

I Found the following:

 

https://ahelpme.com/howto/qemu-full-virtualization-cpu-emulations-enable-disable-cpu-flags-instruction-sets/

https://stackoverflow.com/questions/39154850/how-do-i-emulate-the-vmx-feature-with-qemu

https://stackoverflow.com/questions/43942033/nested-virtualization-with-kvm-enable-kvm-in-qemu-in-nested-virtualization?rq=1

 

Somehow it should be possible to make the CPUS Features visible to the VM.

 

The XML commands above, mentioned by Siwat, do not work anymore.

Error: XML error: Non-empty feature list specified without CPU model

 

Cpu Mode "custom" does not exist anymore. But there is a mode called "Host-Model".

 

How can i use QEMU emulated CPU Cores for my MS HyperV Server and passtrough the VMX Features to its VMS for nested Virtualization.

 

best regards

 

lukas

Just adding +vmx to the cpu features supported worked for me with a nested guest on  a MacOS VM. Like this:

<qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel,kvm=on,+invtsc,vmware-cpuid-freq=on,+vmx'/>
</qemu:commandline>

 

  • 2 weeks later...
On 7/30/2019 at 2:25 PM, Jagadguru said:

Just adding +vmx to the cpu features supported worked for me with a nested guest on  a MacOS VM. Like this:


<qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel,kvm=on,+invtsc,vmware-cpuid-freq=on,+vmx'/>
</qemu:commandline>

  

in here?

  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='10' threads='2'/>
  </cpu>

 

My CPU is Sandy Bridge EP though, should it still be Penryn? E5 2650

At the very end of the XML.  It's for when you use a QEMU emulated CPU like the OP. Yours should be Penryn if you're running MacOS in a VM. 

 

What OS are you trying to run in your VM? And what guest within that guest are you trying to run? And with what Virtualization software (within the VM)?

  • Author

where can i find the right xml file guys?

my vm xml only got this short cpu section:

 

Quote

  <vcpu placement='static'>24</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='12'/>
    <vcpupin vcpu='2' cpuset='1'/>
    <vcpupin vcpu='3' cpuset='13'/>
    <vcpupin vcpu='4' cpuset='2'/>
    <vcpupin vcpu='5' cpuset='14'/>
    <vcpupin vcpu='6' cpuset='3'/>
    <vcpupin vcpu='7' cpuset='15'/>
    <vcpupin vcpu='8' cpuset='4'/>
    <vcpupin vcpu='9' cpuset='16'/>
    <vcpupin vcpu='10' cpuset='5'/>
    <vcpupin vcpu='11' cpuset='17'/>
    <vcpupin vcpu='12' cpuset='6'/>
    <vcpupin vcpu='13' cpuset='18'/>
    <vcpupin vcpu='14' cpuset='7'/>
    <vcpupin vcpu='15' cpuset='19'/>
    <vcpupin vcpu='16' cpuset='8'/>
    <vcpupin vcpu='17' cpuset='20'/>
    <vcpupin vcpu='18' cpuset='9'/>
    <vcpupin vcpu='19' cpuset='21'/>
    <vcpupin vcpu='20' cpuset='10'/>
    <vcpupin vcpu='21' cpuset='22'/>
    <vcpupin vcpu='22' cpuset='11'/>
    <vcpupin vcpu='23' cpuset='23'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-3.1'>hvm</type>
  </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'>
    <topology sockets='1' cores='12' threads='2'/>
  </cpu>

 

you probably edit some qemu config xml right? not the vm itself

Edited by EDV Dave
missing

  • 4 weeks later...
  • Author

OK it worked. Just added your Lines within the "domain" tag:

 

 

    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
  <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel,kvm=on,+invtsc,vmware-cpuid-freq=on,+vmx'/>
  </qemu:commandline>
</domain>

 

 

 

Performance is way better now and nested VMS do start with QEMU Penryn now, but still not performing as well as when i just tick QMEMU CPU without speccifying Penryn type.

 

 Are there other choices?

 

best regards

  • 1 month later...

Thanks this helped me a lot. Made a big difference to get it like that. Now just to set up static huge pages on my second numa node.

Archived

This topic is now archived and is closed to further replies.

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.