-
Notifications
You must be signed in to change notification settings - Fork 612
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CentOS Stream 10 guest kernel panic (invalid opcode: 0000
in chacha_8block_xor_avx512vl
)
#3022
Comments
Is this the version where they bumped the microarch? So that it now requires v3 - but not v4 afaik? https://www.centos.org/centos10/ If I understand correctly, that only means they can guarantee AVX2 - but still need to probe AVX512VL if (boot_cpu_has(X86_FEATURE_AVX) &&
boot_cpu_has(X86_FEATURE_AVX2) &&
cpu_has_xfeatures(XFEATURE_MASK_SSE | XFEATURE_MASK_YMM, NULL)) {
static_branch_enable(&chacha_use_avx2);
if (IS_ENABLED(CONFIG_AS_AVX512) &&
boot_cpu_has(X86_FEATURE_AVX512VL) &&
boot_cpu_has(X86_FEATURE_AVX512BW)) /* kmovq */
static_branch_enable(&chacha_use_avx512vl);
} Then again, it might be one of those AVX/AVX2 that are crashing - earlier versions did check for those too. https://developers.redhat.com/articles/2024/01/02/exploring-x86-64-v3-red-hat-enterprise-linux-10 |
This comment was marked as resolved.
This comment was marked as resolved.
There is now a 10.0 beta out, not sure it works better than stream 10 did? https://almalinux.org/blog/2024-12-10-almalinux-10-0-beta-now-available/ No cloud images yet, but maybe they will come later? |
This comment was marked as resolved.
This comment was marked as resolved.
According to this page, it comes in two different CPU variants (wrt AVX512): Can you It seems there is some mis-detection of the CPU features (or it has been disabled) https://kitten.repo.almalinux.org/10-kitten/BaseOS/x86_64/os/Packages/ (v3) |
Workaround: specify the cpu type as "Haswell-v4" |
Most likely there is some opcode that needs to be in that kernel check,
Crashes on first # x12 += counter values 0-3
vpaddd CTR8BL(%rip),%ymm12,%ymm12
vmovdqa64 %ymm0,%ymm16
vmovdqa64 %ymm1,%ymm17
vmovdqa64 %ymm2,%ymm18 Also the CentOS Stream kernel (6.12) is different from the EL10 kernel, which for some reason used a non-lts version? https://www.theregister.com/2024/12/13/rhel_almalinux_betas/ The chacha crypto is unmodified, though. (v6.11-rc5 --> v6.12)
|
I guess RHEL 10 will switch to 6.12 too before its GA? |
Some interesting details in the golang issues about AVX512 support:
The instruction fault handler is exactly what we are seeing here... do_error_trap(regs, 0, "invalid opcode", X86_TRAP_UD, SIGILL,
ILL_ILLOPN, error_get_trap_addr(regs)); Apparently this is matched with cpuid returning all those features that could be used if you do that song-and-dance, and not just the ones that are available without it (such as SSE and AVX2, i.e. v2 and v3). Maybe it can be masked out? |
i.e. we would do the code equivalent of: cpuType:
x86_64: "host,-avx512vl" And then macOS would run without AVX512? Which is better than kernel panic, at least. Can't try it here, but it "worked" for removing AVX2:
i.e. this old host CPU doesn't have AVX512 support (v4) So as a test I (tried to) ran centos-stream-10 with "host,-avx2" |
CentOS Stream 10 guest kernel panics:
lima.yaml
serial.log
The text was updated successfully, but these errors were encountered: