Jeff Garzik wrote:
We're only referring specifically to the family == 6 VIA processors here.
To be specific, I was merely saying that VIA processors where c->x86_model==6 may lack CMOV.
I have not kept track of what current Kconfig options will set, but in the past it was quite easy to build a "generic 686 kernel" that required CMOV and thus excluded these VIA processors.
Distros in the past often wound up intentionally -not- supporting some of these VIA processors, because they did not want to create a non-CMOV kernel. (This policy obviously excluded older x86 as well)
If these things have been addressed recently (< 12-18 months) then all good.
I am pretty sure CONFIG_X86_GENERIC doesn't disable CMOV, and since CMOV is a separate CPUID flag it's all good (if the chip doesn't have it, it'll trap.)
Unfortunately Intel didn't assign a CPUID flag for the long NOPs, and then didn't document them (I think partially because they were a retcon), but yet it reflected a serious hole in Centaur's characterization effort that they bumped family to 6 without following P6 behaviour for a massive range of opcodes.
The main reason for disabling P6 NOPs for CONFIG_X86_GENERIC is that the win is so small, and that a number of vendors got it wrong.