From 9f117a79f648abccabaff73b68dfee2298ca13e7 Mon Sep 17 00:00:00 2001
From: Tristan Menke
Date: Mon, 21 Jun 2021 02:53:18 +0200
Subject: [PATCH] Documentation: Add workaround for blackscreen using
WSL+QEMU6.x
This workaround disables the in-kernel interrupt controller.
This impacts the VM performance and should probably be removed
when the workaround is no longer needed.
This workaround was posed by stelar7.
See #7523
---
Documentation/NotesOnWSL.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/NotesOnWSL.md b/Documentation/NotesOnWSL.md
index 8e8002d062..3f13b4d5a0 100644
--- a/Documentation/NotesOnWSL.md
+++ b/Documentation/NotesOnWSL.md
@@ -75,6 +75,8 @@ If Serenity freezes on boot with the log message: `Scheduler[0]: idle loop runni
Please ensure you have installed the most recent version of [QEMU for Windows](https://qemu.weilnetz.de/) and that you have followed the step above to enable the maximum feature set available:
`export SERENITY_QEMU_CPU="max,vmx=off"`.
+If the steps above do not fix the problem, check the boot log for `whpx: injection failed, MSI (0, 0) delivery: 0, dest_mode: 0, trigger mode: 0, vector: 0, lost (c0350005)`. If present, try disabling the KVM in-kernel interrupt handler by extending the above to `export SERENITY_EXTRA_QEMU_ARGS="-accel whpx,kernel-irqchip=off"`. This seems to be an issue for some users with QEMU 6.x.
+
##### Illegal instruction on boot
Using `SERENITY_QEMU_CPU="max"` can trigger a QEMU bug where the OSXSAVE CPUID flag is erroneously set, playing havoc with feature detection logic in libgcc and resulting in this error.