summary refs log tree commit diff stats
path: root/gitlab/issues/target_i386/host_missing/accel_TCG/844.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_i386/host_missing/accel_TCG/844.toml')
-rw-r--r--gitlab/issues/target_i386/host_missing/accel_TCG/844.toml56
1 files changed, 56 insertions, 0 deletions
diff --git a/gitlab/issues/target_i386/host_missing/accel_TCG/844.toml b/gitlab/issues/target_i386/host_missing/accel_TCG/844.toml
new file mode 100644
index 000000000..5f2d4e7f6
--- /dev/null
+++ b/gitlab/issues/target_i386/host_missing/accel_TCG/844.toml
@@ -0,0 +1,56 @@
+id = 844
+title = "Close gap for x86_64-v3 ABI in TCG - CPU support for fma, f16c, avx, avx2 features required"
+state = "closed"
+created_at = "2022-01-28T16:39:28.785Z"
+closed_at = "2022-10-25T13:57:03.940Z"
+labels = ["accel: TCG", "kind::Feature Request", "target: i386"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/844"
+host-os = "n/a"
+host-arch = "x86_64"
+qemu-version = "(e.g. `qemu-system-x86_64 --version`)"
+guest-os = "n/a"
+guest-arch = "x86_64"
+description = """There are 3 additional ABIs defined by a collaboration of vendors for the `x86_64` architecture, over the original baseline:
+
+* https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex
+
+This is no problem for KVM assuming suitable host hardware, but TCG is currently unable to support more than the original baseline and the `x86_64-v2` step.  
+
+For `x86_64-v3` there are some gaps in its emulation coverage. This can be seen by taking `Nehalem` which is a good fit for `x86_64-v2`, and requesting the extra v3 features:
+
+```
+$ qemu-system-x86_64 -accel tcg -cpu Nehalem,+avx,+avx2,+bmi1,+bmi2,+f16c,+fma,+abm,+movbe
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
+```
+
+IOW, the strict bare minimum TCG needs in order to satisfy `x86_64-v3` is  `fma`, `f16c`, `avx` and `avx2` support
+
+If we want to fully support a named CPU model satisfying v3, then `Haswell` is the closest and that has a few additional gaps
+
+```
+$ qemu-system-x86_64 -accel tcg -cpu Haswell-noTSX
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.x2apic [bit 21]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.tsc-deadline [bit 24]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.f16c [bit 29]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
+qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.07H:EBX.invpcid [bit 10]
+
+```
+
+Those additional gaps wouldn't impact ability to execute binaries build for the `x86_64-v3` ABI though, so not as important.
+
+The reason `x86_64-v3` compatibility in TCG matters is because sooner or later some Linux OS are going to set this as the baseline for their compiler toolchain.  There is a proposal to set this in `Fedora ELN`, which is what feeds in to a possible future `RHEL-10`.
+
+I imagine adding these extra features would be non-negligible work in TCG / take some time to complete.
+
+Thus I file this bug for the purpose of suggesting these 4 specific missing features be considered a priority to address, compared to other missing CPU features in TCG that might be considered more of a 'nice to have'.
+
+eg looking further the `x86_64-v4` baseline brings in a requirement for `avx512f`, `avx512bw`, `avx512cd`, `avx512dq`, `avx512vl` which TCG also lacks, but I don't think they really need to be considered important at this point in time."""
+reproduce = "n/a"
+additional = "n/a"