Categories
Computers Zaurus

Mystery Segfaults Solved

After much painful debugging, I finally found the cause of the segfaults I was seeing on EABI images, particularly with glibc 2.4/2.5. It turned out to be a cache flushing problem affecting StrongARM, XScale and ARMv6 processors. The bug must have been in the kernel for years and only triggered by the changed usage patterns in glibc 2.4/2.5.

I submitted a patch for the problem which has been accepted into the mainline kernel and will be in 2.6.20.
(http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=4078/1, http://www.rpsys.net/openzaurus/patches/archive/xscale_cache_workaround-r1.patch). I’d recommend anyone using the affected processors to apply this patch.