You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After extending the approach used for #256 (#261) and #311 (#314), SPDK (nvmf_tgt and DPDK's EAL) was still returning an Illegal Instruction core dump.
I found that the proper approach is not enable/disable specific instruction sets but telling the compiler to generate code for a specific generation of x86-64 machine.
This can be easily done by passing --target-platform=x86-64-v<generation> to the SPDK configure script.
I'll remove the existing fixes for the above mentioned PRs, as this is a more comprehensive/maintainable approach.
The text was updated successfully, but these errors were encountered:
@caroav yes, CPU instructions are added incrementally, so x86-64-v2 will work in all x86-64 CPUs from the last ~10 years (Ivy Bridge is from 2013). This excludes AVX*, RDSEED and many others. The current approach only excluded certain instruction sets, but didn't tell the compiler to generate code compatible with an existing architecture.
That said, having an SPDK compiled for x86-64-v2 might exclude optimizations that make it less performant. My suggestion is that we release (at least a x86-64-generic or v2 build, plus a v4, which leverages the latest optimizations).
After extending the approach used for #256 (#261) and #311 (#314), SPDK (
nvmf_tgt
and DPDK'sEAL
) was still returning anIllegal Instruction
core dump.I found that the proper approach is not enable/disable specific instruction sets but telling the compiler to generate code for a specific generation of x86-64 machine.
This can be easily done by passing
--target-platform=x86-64-v<generation>
to the SPDKconfigure
script.I'll remove the existing fixes for the above mentioned PRs, as this is a more comprehensive/maintainable approach.
The text was updated successfully, but these errors were encountered: