Windows 10 Gaming HVM Slow Disk I/O on M.2 SSD & Low Link Speed

Hi all,

Quick specs:

Qubes R4.1
Ryzen 5 5800X
32GB DDR4 3200
RTX 3070 disabled via GRUB in the primary PCIe slot
RX550 for Qubes in secondary PCIe slot (max 4x speed) - Works but no video output during disc decrypt but that doesn’t bother me.
HVM Created with qvm-create-windows-qube

Not a huge huge priority I know this is experimental, but was curious if anyone else has run into this one. I was able to successfully get my Windows 10 HVM working with an RTX 3070 for passthrough. If I directly attach one of my USB Controllers I do not get the audio crackling through my USB soundbar and performance is actually good… until it’s disk heavy.

In Task Manager in Win10 I see Disk0 which reads as an HDD getting pinned to 100% when loading a game and will cause very bad stuttering in-game for certain games.

I’m noticing a cap when running CrystalDiskMark of about 400MB/s on a drive capable of 7200, and have tested a Fedora Qube and get around 2.5GB/s when using dd.

Additionally, my Gaming HVM (Win10 Pro) seems to be stuck at 100/100 for the link speed and cannot be adjusted higher on the adapter in Windows, but my non-passthrough HVM (Win10 LTSC) is getting 1073/1073 (still suffers the disk IO issue though). I may try for a reinstall to see if that helps, or maybe switch the gaming one to LTSC and see if that changes things.

For now next step for me is probably trying to get a Linux based gaming HVM going now that I know it’s possible, and will likely resolve both the I/O and Link Speed issues but would be great to get Win10 running without needing a dual boot.

Link speed issue resolved hopefully so just leaves the Disk I/O!

I renamed my VM to not have the gpu- prefix for the 3.5GB patch, detached the Nvidia card from the Devices tab, re-enabled the GUI for it in Qubes and booted and it showed 1073/1073 for the link speed.

I shut it down, renamed with the gpu- prefix, attached the Nvidia card, disabled the GUI and booted and it now is showing me 1073/1073 for the link speed so maybe just a bug there. Tested a full system reboot and still getting the full link speed! Unsure of if it actually matters since it’s not an actual adapter but difficult to test it with the low disk speed.

hey, I have a similar setup except intel cpu instead of amd.

Can you write a tutorial on how you created a gaming vm?

I used qvm-create-windows-qube (linked above) to create it, if you run into an issue with hanging you can resolve it with this post

I also needed to do the 3.5G patch, there are a number of ways you can do it, you just need to try them until you get it to be able to boot with enough memory while your GPU is passed through (if it’s even an problem for you at all).

After that, I just booted it up in Qubes then went and installed the Nvidia driver, ran the steps below to disable the Qubes monitor and I had it working off of my gaming GPU. You will need to either attach your USBs to the VM (doesn’t work well for me) or do passthrough on a USB Controller or additional PCI card.

In order to disable the window in Qubes and just use your GPUs video out, you can use:

qvm-features your-vm-name gui ''
qvm-features your-vm-name gui-emulated 0
qvm-features your-vm-name video-model none

If you need to bring it back (OS doesn’t boot right or something)

qvm-features your-vm-name gui 1
qvm-features your-vm-name gui-emulated 1
qvm-features your-vm-name video-model --delete

Would love to do a writeup but I fumbled through the whole thing so I don’t have it outlined well at all

1 Like