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.

Reply via email to