Any ideas for what to call this feature? ASYM_SMT4 ?+ if (cpu_has_feature(CPU_FTRS_POWER7) && weight == 4) {
I think we should avoid using cpu_has_feature like this. It's better to
create a new feature and add it to POWER7 in the cputable, then check
for that here.
The way that it is now, I think any CPU that has superset of the POWER7
features, will be true here. This is not what we want.
I can turn that into a conditional branch (case statement) with a shift for the common 1,2,4 cases which should cover all procs available today falling back to a divide for any theoretical future processors that do other numbers of threads.
+ smt_gain /= weight;
This results in a PPC div, when most of the time it's going to be a
power of two divide. You've optimised the divides a few lines above
this, but not this one. Some consistency would be good.