VM freeze with blank screen
Describe the issue
I do run a Windows 11 ARM on a MacBook Pro M1 and keep it running when closing the lid of the MacBook. The Power Plan in Windows is set to "High Performance".
When I open the MacBook's lid the next day, the Windows VM is completely frozen with a blank screen.
When I try to "Force shut down" the VM, UTM is not able to terminate the process and displays the following error message after a timeout:
I need the use the "Force kill" to terminate the VM process, but then the UTM main window shows a spinning wait animation and it's impossible to start the VM anymore. The only solution is to quit UTM and restart the application
Configuration
- UTM Version: 4.4.5
- macOS Version: 14.4
- Mac Chip (Intel, M1, ...): Apple Silicon M1 Pro
Debug log
UTM-Crash-debug.log
Upload VM
config.plist.txt
Have you disabled all sleep from Windows?
In Control Panel, I choose "High Performance" option
In addition, the following settings were changed :
Turn off the display : Never Turn off hard disk after : Never
Since I upgraded to UTM 4.5.0 (Beta), the freeze did not happened yet. In the meantime, a new macOS version was installed as well (14.4.1).
I will continue to monitor the issue and post updates.
This morning it happened again.
Yesterday, I started the VM while the Macbook was connected to an external display. Then in the afternoon, I disconnected the MacBook from the external display and was able to work with the VM on the MacBook with the integrated Display.
Later I closed the lid while the VM was still running. An hour later, I just connected the MacBook in clamshell mode (USB-C cable) to the external display to charge the battery without continuing to work.
This morning when I hit the external keyboard to wake up the display, the VM immediately froze and I got the "nice" white screen.
Maybe it has something to do with the guest tools ?
In the VM logs, there is no information, the latest recorded line was from yesterday evening.
In the Event viewer, I see the following information message happening this night:
A caller specified the SDC_FORCE_MODE_ENUMERATION flag in a call to the SetDisplayConfig() API
@osy : Today I created a completely new Windows 11 ARM and I could reproduce the blank screen issue (UTM 4.5.1 Beta)
After analysing the Windows Event logs, I found out that I once again got the "A caller specified the SDC_FORCE_MODE_ENUMERATION flag in a call to the SetDisplayConfig() API" event when I disconnected the USB-C cable from the MacBook (external display). The MacBook was connected in Clamshell mode and disconnected from the external display around 19:30
The Windows event was logged twice at :
1/4/2024 19:34:07 PM 1/4/2024 19:36:46 PM
When I opened the MacBook lid 1,5 hours later (not connected to external display), the VM window was frozen with a blank screen. Trying to shutdown or killing the VM resulted in a "Timed out waiting for RPC" (see first post for screenshot).
I attached the VM log file and maybe there is some interesting information:
2024-04-01 20:38:40,058 DEBUG (null)-/Users/runner/Library/Developer/Xcode/DerivedData/UTM-atmnidivgqrsnpfhwimtnbayniap/SourcePackages/checkouts/CocoaSpice/Sources/CocoaSpice/CSDisplay.m:207 [CocoaSpice] cs_gl_draw 2024-04-01 20:48:48,902 DEBUG GSpice-../src/channel-main.c:1148 main-1:0: sending new monitors config to guest 2024-04-01 20:48:48,902 DEBUG GSpice-../src/channel-main.c:1165 main-1:0: monitor #0: 1512x850+0+0 @ 32 bpp 2024-04-01 20:48:48,902 DEBUG GSpice-../src/channel-main.c:1080 #0 +0+0-1512x850 (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:48.934: ../server/reds.c:1232:reds_on_main_agent_monitors_config: monitors_config->num_of_monitors: 16 (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:49.128: ../server/display-channel.c:176:monitors_config_unref: freeing monitors config (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:49.128: ../server/display-channel.c:184:monitors_config_debug: monitors config count:1 max:1 (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:49.128: ../server/display-channel.c:188:monitors_config_debug: head #0 +0+0 1512x850 (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:49.129: ../server/display-channel.c:184:monitors_config_debug: monitors config count:1 max:1 (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:49.129: ../server/display-channel.c:188:monitors_config_debug: head #0 +0+0 1512x850 2024-04-01 20:48:49,130 DEBUG GSpice-../src/channel-display.c:2083 display-2:0: gl scanout fd: 53 2024-04-01 20:48:49,130 DEBUG (null)-/Users/runner/Library/Developer/Xcode/DerivedData/UTM-atmnidivgqrsnpfhwimtnbayniap/SourcePackages/checkouts/CocoaSpice/Sources/CocoaSpice/CSDisplay.m:188 [CocoaSpice] cs_gl_scanout: got scanout (qemu-aarch64-softmmu:26948): Spice-DEBUG: 20:48:49.130: ../server/display-channel.c:176:monitors_config_unref: freeing monitors config 2024-04-01 20:48:49,130 DEBUG GSpice-../src/channel-display.c:2039 display-2:0: received new monitors config from guest: n: 1/1 2024-04-01 20:48:49,130 DEBUG GSpice-../src/channel-display.c:2059 display-2:0: monitor id: 0, surface id: 0, +0+0-1512x850 2024-04-01 20:48:49,130 DEBUG (null)-/Users/runner/Library/Developer/Xcode/DerivedData/UTM-atmnidivgqrsnpfhwimtnbayniap/SourcePackages/checkouts/CocoaSpice/Sources/CocoaSpice/CSDisplay.m:135 [CocoaSpice] update monitor area 2024-04-01 20:48:49,130 DEBUG (null)-/Users/runner/Library/Developer/Xcode/DerivedData/UTM-atmnidivgqrsnpfhwimtnbayniap/SourcePackages/checkouts/CocoaSpice/Sources/CocoaSpice/CSConnection.m:116 [CocoaSpice] display 0 now has 1 monitors 2024-04-01 20:48:49,130 DEBUG GSpice-../src/channel-display.c:2083 display-2:0: gl scanout fd: 54 2024-04-01 20:48:49,130 DEBUG (null)-/Users/runner/Library/Developer/Xcode/DerivedData/UTM-atmnidivgqrsnpfhwimtnbayniap/SourcePackages/checkouts/CocoaSpice/Sources/CocoaSpice/CSDisplay.m:188 [CocoaSpice] cs_gl_scanout: got scanout qemu-aarch64-softmmu: warning: console: no gl-unblock within one second qemu-aarch64-softmmu: warning: spice: no gl-draw-done within one second Debug JSON send -> { execute = "query-mice"; } RPC: Timed out waiting for RPC. Debug JSON send -> { execute = quit; } RPC: Timed out waiting for RPC. 2024-04-01 20:49:48,388 DEBUG GSpice-../src/spice-session.c:2027 session: disconnecting 0 2024-04-01 20:49:48,388 DEBUG (null)-/Users/runner/Library/Developer/Xcode/DerivedData/UTM-atmnidivgqrsnpfhwimtnbayniap/SourcePackages/checkouts/CocoaSpice/Sources/CocoaSpice/CSConnection.m:397 [CocoaSpice] -[CSConnection dealloc]:397
@osy : Some days ago I disabled the GPU acceleration for the graphics card and switched to virtio-ramfb.
Since then, I did not get any freeze of the VM.
So the issue is related to the virtio-ramfb-gl graphics card. Are there any driver updates I can download and test ?