“On the ARM architecture, due to the split instruction and data caches, JIT engines have to clear the processor’s instruction cache to ensure that any freshly generated instructions are loaded and run.
Mono’s engineers noticed that, when flushing 128-byte blocks from the I-cache, only 64 bytes were being cleared, allowing the processor core to run stale and mismatched code and crash the running application.”
See Bug of the month: Cache flow problem crashes Samsung phone appsYes, ARMed devices are wonderful, but being different also causes different problems for programmers. The BIG-little architecture intended to optimize lifetimes of batteries has the unintended consequence of making caching of data and instructions a bit more difficult when processes move from one processor to another of different size. I’ve seen this many times. The more complex the system the longer it takes to learn it and the more mistakes are made.
Now, if only folks could fix the problem with the LeMaker Cello so that I could buy one sooner rather than later…