summary refs log tree commit diff stats
path: root/results/classifier/105/instruction/664
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-03 12:04:13 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-06-03 12:04:13 +0000
commit256709d2eb3fd80d768a99964be5caa61effa2a0 (patch)
tree05b2352fba70923126836a64b6a0de43902e976a /results/classifier/105/instruction/664
parent2ab14fa96a6c5484b5e4ba8337551bb8dcc79cc5 (diff)
downloadqemu-analysis-256709d2eb3fd80d768a99964be5caa61effa2a0.tar.gz
qemu-analysis-256709d2eb3fd80d768a99964be5caa61effa2a0.zip
add new classifier result
Diffstat (limited to 'results/classifier/105/instruction/664')
-rw-r--r--results/classifier/105/instruction/66427
1 files changed, 27 insertions, 0 deletions
diff --git a/results/classifier/105/instruction/664 b/results/classifier/105/instruction/664
new file mode 100644
index 000000000..c5aef0e99
--- /dev/null
+++ b/results/classifier/105/instruction/664
@@ -0,0 +1,27 @@
+instruction: 0.918
+device: 0.790
+graphic: 0.737
+mistranslation: 0.722
+vnc: 0.678
+socket: 0.655
+network: 0.641
+semantic: 0.561
+boot: 0.533
+other: 0.512
+KVM: 0.489
+assembly: 0.277
+
+hvf-accelerated x86_64 incorrectly reports virtual address bit width via CPUID
+Description of problem:
+When running qemu-system-x86_64 with hvf acceleration enabled the maximum extended cpuid function (available via EAX=0x80000000) is reported to be 0x80000001, which means that physical address and virtual address bit width (which is supposed to be reported via EAX=0x80000008) is not available. As per the intel IA32/64 manual: `Processors that do not support CPUID function 80000008H, support a linear-address width of 32.`, while in actuality qemu-system-x86_64 with hvf acceleration supports virtual addresses of up to 48 bit in width, like most modern x86_64 processors.
+Steps to reproduce:
+This can be observed when running SerenityOS on x86_64 qemu with hvf acceleration based on the following dmesg lines:
+```
+[Kernel]: CPU[0]: Physical address bit width: 36
+[Kernel]: CPU[0]: Virtual address bit width: 32
+```
+But can also be reproduced by running the CPUID instruction with EAX set to 0x80000000 and observing that the returned value is 0x80000001.
+Additional information:
+The best way to resolve this as far as I can tell is to expose the 0x80000008 CPUID function and report the real values.
+
+NOTE: This is a report of the underlying bug that was found during the investigation of an issue raised in the SerenityOS repository, see https://github.com/SerenityOS/serenity/issues/10382 for more information.