[Openmcl-devel] CCL trunk on Linux ARM / Ubuntu - Unhandled exception 4
Gary Byers
gb at clozure.com
Sat May 31 12:52:03 PDT 2014
OK. r16100 in the trunk contains a small compiler change to avoid use
of the problematic instruction and a new armcl.image built with this
change in effect. Please let me know if this fixes the problem.
On Sat, 31 May 2014, Gary Byers wrote:
> 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.
>>
>>
>>
>>
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://lists.clozure.com/mailman/listinfo/openmcl-devel
>
>
More information about the Openmcl-devel
mailing list