[Openmcl-devel] CCL trunk on Linux ARM / Ubuntu - Unhandled exception 4
Gary Byers
gb at clozure.com
Sat May 31 11:41:11 PDT 2014
In both cases that I've looked at, the allegedly illegal instruction is
of the form:
str sp,[sp, #-16]!
That's intended to store the current value of the stack pointer -16 bytes from
that current value and update the sp register so that it points to the word
that was just stored. That's used to create a small frame on the stack where
unboxed values can be stored and that's a new feature; I was going to say
that it's a perfectly valid and harmless instruction, but after R'ing TFM
I note that this form of this instruction is described as having unpredictable
behavior, and that seems to be exactly what you're seeing.
In other words, this is definitely a CCL bug (which is a lot better than some
of the other possibilites would have been.)
On Sat, 31 May 2014, Rainer Joswig wrote:
>
> Am 31.05.2014 um 11:35 schrieb Gary Byers <gb at clozure.com>:
>
>> I don't have a good guess, but another bad guess is that this is an instruction
>> cache problem. (For anyone who cares: most RISC machines have separate instruction
>> and data caches; the X86 has a unified cache. When machine code is written to
>> memory, it's often actually only written to the data cache and isn't actually
>> loaded into the instuction cache unless special steps are taken. A typical
>> symptom of failing to take those steps is that the processor executes code
>> "that isn't there" (what the processor actually executes isn't consistent
>> with what appears to be in memory.)
>
> Gary, here is another data point.
>
> The ODROID XU has a big.LITTLE CPU.
>
> Exynos5 Octa Cortex?-A15 1.6Ghz quad core and Cortex?-A7 quad core CPUs
>
> Exynos 5410
>
>
> It seems that it runs fine on the big cores and crashes on the LITTLE cores.
>
> If I start CCL when the CPU is using the big cores, CCL runs fine.
> If I start CCL when the CPU is using the little cores, CCL crashes.
>
>
> If I start CCL when the CPU is using the big cores, CCL runs fine. Switching back to the little ones, then crashes the crunning CCL.
>
>
>
>
More information about the Openmcl-devel
mailing list