qubes-issues icon indicating copy to clipboard operation
qubes-issues copied to clipboard

Qubes Windows Tools - Increasing vCPUs above 2 causes severe screen issues in Windows 10

Open jmynes opened this issue 1 month ago • 2 comments

Qubes OS release

Qubes OS 4.3

Brief summary

The version of QWT installed in dom0 on 4.3.0 rc3 is qubes-windows-tools-4.2.2-1.fc41.noarch

At the time of writing, this aligns with the latest version in current-testing is qubes-windows-tools-4.2.2-1.fc41.noarch.rpm 20-Nov-2025 23:21 https://yum.qubes-os.org/r4.3/current-testing/host/fc41/rpm/

When I create a Windows 10 qube, it is assigned default values of 2048MB RAM and 2 vCPUs


If I increase the number of vCPUs to any number > 2, Windows graphical performance tanks (unless a separate GPU is passed through, and the qube is displayed on a separate monitor)

Steps to reproduce

  1. In dom0, using qvm-create-windows-qube, run: qvm-create-windows-qube -n sys-firewall -oyp firefox -i win10x64.iso -a win10x64-pro.xml work-win10
  2. Attempt to increase the vCPU count after Win10x64 Pro qube is created
  3. Boot Win10 qube and try to open menus, drag windows, etc. The issue should already be visible when the loading circle on the boot/login screens appears

Expected behavior

Windows 10 qubes should behave like Windows 7 qubes when increasing vCPUs; ordinarily, the same as any other qube would

Actual behavior

Opening menus and dragging windows leaves ghosting and tearing behind: Image

Minimizing/Maximizing the Windows qube's window fixes this, for a moment

Setting back to 2 vCPUs restores ordinary behavior

Additional information

If I manage to set vCPUs higher during the install, before QWT installs, there is no such performance issue. I have not yet tested downgrading QWT.

jmynes avatar Nov 24 '25 18:11 jmynes

I also initially tried reducing the packages installed to just firefox, because Win10 tends to freeze during post-install, as tested on 3 of my systems from different manufacturers (all on modern AMD CPUs and GPUs, if relevant). However, even with just Firefox, I am running into the same issue:

admin@dom0:~$ qvm-create-windows-qube -n sys-firewall -oyp firefox -i win10x64-pro.iso -a win10x64-pro.xml -t work-win10
[!] File not found in windows-mgmt:/home/user/qvm-create-windows-qube/windows/isos: win10x64-pro.iso
[i] Available ISOs (Make sure to download them with Mido as instructed in the README):
win7x64-ultimate.iso
win10x64.iso
admin@dom0:~$ qvm-create-windows-qube -n sys-firewall -oyp firefox -i win10x64.iso -a win10x64-pro.xml -t work-win10
[i] Preparing Windows media for automatic installation...
[i] Creating loop device from ISO...
[i] Mounting loop device...
[i] Creating new ISO...
Booting catalog starts at sector: 22 
Manufacturer of CD: Microsoft Corporation
Image architecture: x86
Boot media type is: no emulation
El Torito image starts at sector 514 and has 8 sector(s) of 512 Bytes

Image has been written to file "/tmp/boot.bin.uzNdS".
[i] Unmounting loop device...
Unmounted /dev/loop8.
[i] Deleting loop device...
[i] Deleting temporary boot image...
[+] Created automatic Windows installation media for win10x64.iso successfully!
[i] Starting creation of work-win10
[i] Starting first part of Windows installation process...
[i] Starting second part of Windows installation process...
[i] Preparing Qubes Windows Tools for automatic installation...
[i] Installing Qubes Windows Tools...
[i] Optimizing Windows...
[i] Disabling Windows telemetry...
[i] Breaking air gap so Windows can connect to the Internet...
[i] Installing packages...
Microsoft Windows [Version 10.0.19045.2965]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\system32>cd %USERPROFILE%\Documents\QubesIncoming\windows-mgmt\post && powershell -ExecutionPolicy Bypass -Command .\packages.ps1 firefox <nul& exit
Exception calling "DownloadString" with "1" argument(s): "The remote name could not be resolved: 'chocolatey.org'"
At C:\Users\user\Documents\QubesIncoming\windows-mgmt\post\packages.ps1:24 char:1
+ Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(' ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException
 
choco : The term 'choco' is not recognized as the name of a cmdlet, function, script file, or operable program. Check 
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\user\Documents\QubesIncoming\windows-mgmt\post\packages.ps1:26 char:1
+ choco install -y $Packages
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (choco:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
[i] Running user-defined custom commands...
2025-11-24 12:31:41.620 qrexec-client[70494]: vchan_timeout.c:46:qubes_wait_for_vchan_connection_with_timeout: vchan connection timeout
2025-11-24 12:31:41.621 qrexec-client[70494]: qrexec-client.c:385:main: qrexec connection timeout
[i] Shutting down Windows...

This doesn't seem to happen every time, I have back to back installed Win10 on the same laptop, and in one case, Firefox successfully installed (despite the same freeze occurring), and then in the logged time above, Firefox didn't begin installing.

This same freeze (but without an error message) appears to happen about 50% of the time with all versions of QWT in 4.3.0 rc3, even if I omit the -p packagenamehere entirely

jmynes avatar Nov 24 '25 18:11 jmynes

  • Downgrading from 4.2.2-1 to 4.2.1-1 before install has the same performance issues, and the same issue where sometimes the install crashes instead of completing successfully

  • Switching to 4.2.0-1-fc41 before install creates an unbootable Win10 qube, no matter how many times I try

  • Downgrading to qubes-windows-tools-4.1.69-1.fc37.noarch does not have any such performance issues under QubesOS 4.3.0 rc3, though also still stalls out during the qvm-create-windows-qube process sometimes

jmynes avatar Nov 24 '25 20:11 jmynes