I've heard that the greatest risk is on a big.LITTLE system where the two clusters have different microarchitectures (e.g. A-53 and A-57) and implement the same instruction set. The performance characteristics of the clusters may vary in a more complex way than just being uniformly faster by a constant percentage, for a given clock rate.
For example, I've heard NEON code performance can vary in surprising ways between different micro-architectures. So if you hand-optimize your NEON code for one micro-architecture, it may no longer be optimal on another micro-architecture. In that case it is useful for the thread to be able to know at runtime which micro-architecture it is running on. I'm not sure whether Linux kernels expose this information to user mode, especially given that it may change after task migration. This is my understanding; but please feel free to correct or extend if I am misinformed on any of this. On Sunday, July 31, 2016 at 3:19:27 PM UTC-7, [email protected] wrote: > > One specific example is that if a phone has two clusters. Cores in > one cluster has v8 crypto extension and cores in the other don't. > Will this work? > > My gut feeling is no, since many apps query cpu features at run-time. > And process can migrate among cores. If an app starts on a core with > CE and migrates to another core without CE. Illegal instruction fault > will happen. > > Just wanna confirm if this is indeed the case. Surprisingly google > search did not yield any meaningful answers. > > Cheers. > > Jun > -- -- unsubscribe: [email protected] website: http://groups.google.com/group/android-kernel --- You received this message because you are subscribed to the Google Groups "Android Linux Kernel Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
