Messages in this thread | | | Date | Thu, 5 May 2011 15:09:04 -0500 (CDT) | From | Christoph Lameter <> | Subject | Re: [block IO crash] Re: 2.6.39-rc5-git2 boot crashs |
| |
On Thu, 5 May 2011, werner wrote:
> As the 1st step, for can be compiled generic kernels at all, the kernel > should have (and has) the ability, to discover at run-time , what hardware the > individual user has, and to use only the corresponding kernel subroutines. > F.ex. if subroutines for ELAN or MOORESTON were compiled also, then the kernel > ignore them simply, if on run-time it discovers that the user has a 486 > computer.
Yes indeed the kernel can detect that. And the code has fallback for the case that the processor flags indicate that cmpxchg16b is not supported.
However, in this case the kernel configuration at build time was set in such a way (!CMPXCHG64 support but CMPXCHG_LOCAL) that generic fallback functions were used at compile time instead of the x86 assembly that can do the fallback with run time detection. Thus the code to do the fallback was not compiled in. Frankly, I was not aware that such a case existed where one could disable cmpxchg64 in this way and was expecting that the runtime detection would always be compiled in for the CMPXCHG_LOCAL case.
| |