-
Notifications
You must be signed in to change notification settings - Fork 34
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
Fails with CPU does not support x86-64-v2 #49
Comments
Just a note when I was investigating this: Seems like AMD hosts do not have this issue because they bypass
An Intel host, however, seems to intercept the cpuid properly and runs into the issue as described:
If I run
This makes me think that the CPUID bits in cpuid.rs are not toggled properly. It could, however, also be something related to intercept_cpuid maybe |
I think it's just an issue with what CPUID flags we expose. According to https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels, we need to enable flags for Using this page to find out the appropriate bits to toggle (https://www.felixcloutier.com/x86/cpuid), I was able to check this to work on an Intel host. I can make hermit run with this change:
|
Summary: Intel hosts without this diff are running into an issue where standard linux binaries are saying the following: ``` $ hermit run date Fatal glibc error: CPU does not support x86-64-v2 ``` This is unlike the AMD hosts because the AMD hosts do not actually properly intercept cpuid instructions (another issue we should deal with...). So they have this feature enabled since it's the equivalent of `no-virtualize-cpuid`. Looking online, it seems like we need to just enable the flags required to support that architectural level. More details in #49 (comment) Reviewed By: jasonwhite Differential Revision: D55874608 fbshipit-source-id: 619116fe2f3a9d0bcfd667f1c6db26c031cee640
bd3153b should close this |
Describe the bug
On some OS/arch/glibc, we now fail quickly with this message:
To Reproduce
Running
examples/rand.py
is sufficient.Environment
Initial Investigation Notes
Running with
hermit run --log=info
shows that this is an issue with arch_prctl returning EINVAL:The text was updated successfully, but these errors were encountered: