summary refs log tree commit diff stats
path: root/results/classifier/deepseek-2/output/KVM/1658141
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/deepseek-2/output/KVM/1658141')
-rw-r--r--results/classifier/deepseek-2/output/KVM/165814145
1 files changed, 45 insertions, 0 deletions
diff --git a/results/classifier/deepseek-2/output/KVM/1658141 b/results/classifier/deepseek-2/output/KVM/1658141
new file mode 100644
index 000000000..116f34499
--- /dev/null
+++ b/results/classifier/deepseek-2/output/KVM/1658141
@@ -0,0 +1,45 @@
+
+QEMU's default msrs handling causes Windows 10 64 bit to crash
+
+Wine uses QEMU to run its conformance test suite on Windows virtual machines. Wine's conformance tests check the behavior of various Windows APIs and verify that they behave as expected.
+
+One such test checks handling of exceptions down. When run on Windows 10 64 bit in QEMU it triggers a "KMOD_EXCEPTION_NOT_HANDLED" BSOD in the VM. See:
+https://bugs.winehq.org/show_bug.cgi?id=40240
+
+
+To reproduce this bug:
+* Pick a Windows 10 64 bit VM on an Intel host.
+
+* Start the VM. I'm pretty sure any qemu command will do but here's what I used:
+  qemu-system-x86_64 -machine pc-i440fx-2.1,accel=kvm -cpu core2duo,+nx -m 2048 -hda /var/lib/libvirt/images/wtbw1064.qcow2
+
+* Grab the attached source code. The tar file is a bit big at 85KB because I had to include some Wine headers. However the source file proper, exception.c, is only 85 lines, including the LGPL header.
+
+* Compile the source code with MinGW by typing 'make'. This produces a 32 bit exception.exe executable. I'll attach it for good measure.
+
+* Put exception.exe on the VM and run it.
+
+
+After investigation it turns out this happens:
+ * Only for Windows 10 64 bit guests. Windows 10 32 bit and older Windows versions are unaffected.
+
+ * Only on Intel hosts. At least both my Xeon E3-1226 v3 and i7-4790K hosts are impacted but not my Opteron 6128 one.
+
+ * It does not seem to depend on the emulated CPU type: on the Intel hosts this happened with both 
+core2duo,nx and 'copy the host configuration' and did not depend on the number of emulated cpus/cores.
+
+ * This happened with both QEMU 2.1 and 2.7, and both the 3.16.0 and 4.8.11 Linux kernels, both on Debian 8.6 and Debian Testing.
+
+
+After searching for quite some time I discovered that the kvm kernel module was sneaking the following messages into /var/log/syslog precisely when the BSOD happens:
+
+Dec 16 13:43:48 vm3 kernel: [  191.624802] kvm [2064]: vcpu0, guest rIP: 0xfffff803cb3c0bf3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
+Dec 16 13:43:48 vm3 kernel: [  191.624835] kvm [2064]: vcpu0, guest rIP: 0xfffff803cb3c0c5c unhandled rdmsr: 0x1c9
+
+A search on the Internet turned up a post suggesting to change kvm's ignore_msrs setting:
+
+   echo 1 >/sys/module/kvm/parameters/ignore_msrs
+
+https://www.reddit.com/r/VFIO/comments/42dj7n/some_games_crash_to_biosboot_on_launch/
+
+This does actually work and provides a workaround at least.
\ No newline at end of file