https://www.phoronix.com/scan.php?page=article&item=linux-51...
Did you have this kernel, or an earlier one? (Perhaps there're still many problems to fix)
Big little is fundamentally the correct architecture. It's not Intel's fault that the software guys making the Linux Kernel haven't fully supported heterogeneous yet.
In the long term, it'll be the optimal call for so many workloads. Thousands of server and laptop workloads care only about performance per watt, not peak single thread.
With these architectures I think often what the management should really look at is: "We currently employ 100 hardware engineers, and 30 software engineers, with this architecture, we're going to need 50 hardware engineers and 500 software engineers. Do we still think this is the right call?"
Because this problem is incredibly well solved (I believe?).
Scheduling priorities in operating systems an enormously well explored topic.
Put simply: you must incorporate heterogenous cores into the OS thread scheduler.
There's three actors here:
Hardware developers.
OS developers.
End user software engineers.
The hardware developers are running into physical constraints.
The fix is to shift the prioritisation between the different core types, big little, to the operating system scheduler.
That fixed the crashing but obviously came with a loss of performance.
glibc's `__clear_cache` would cache the cacheline size on first call, so if the program was started on a big core then migrated onto a little core it would only flush every other cacheline. Which was an issue for any program needing to explicitely clear the caches, like most any JIT.
And the mitigation was not to "change its allocation", it was to bypass libgcc and handroll cache clearing: https://github.com/mono/mono/pull/3549
Source: https://www.mono-project.com/news/2016/09/12/arm64-icache/
This issue didn't only affect Mono e.g. dolphin (https://github.com/dolphin-emu/dolphin/pull/4204) and ppsspp (https://github.com/hrydgard/ppsspp/pull/8965) had been hitting the same issue and adopted mono's fix.
But fundamentally this is the 8890 being broken: as the Mono post notes, technically nothing precludes core migration in the middle of clearing the cache, which would also lead to broken behaviour, with no mitigation.
Nonetheless, I appreciate the corrections and extra context you have provided.