Messages in this thread |  | | | Date | Fri, 05 Sep 2008 22:03:04 -0600 | | From | Robert Hancock <> | | Subject | Re: [git pull] x86 fixes (NOPL issue) | |
Yinghai Lu wrote:
> On Fri, Sep 5, 2008 at 7:22 PM, H. Peter Anvin <hpa@zytor.com> wrote:
>> Hi Linus,
>>
>> Please pull:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git x86-fixes-for-linus-2
>>
>> H. Peter Anvin (4):
>> x86: boot: stub out unimplemented CPU feature words
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
>> index 80ab20d..0785b3c 100644
>> --- a/arch/x86/kernel/cpu/common.c
>> +++ b/arch/x86/kernel/cpu/common.c
>> @@ -13,6 +13,7 @@
>> #include <asm/mtrr.h>
>> #include <asm/mce.h>
>> #include <asm/pat.h>
>> +#include <asm/asm.h>
>> #ifdef CONFIG_X86_LOCAL_APIC
>> #include <asm/mpspec.h>
>> #include <asm/apic.h>
>> @@ -341,6 +342,35 @@ static void __init early_cpu_detect(void)
>> early_get_cap(c);
>> }
>>
>> +/*
>> + * The NOPL instruction is supposed to exist on all CPUs with
>> + * family >= 6, unfortunately, that's not true in practice because
>> + * of early VIA chips and (more importantly) broken virtualizers that
>> + * are not easy to detect. Hence, probe for it based on first
>> + * principles.
>> + */
>
> if so, should only test on VIA chips.
The virtual CPUs are more of a problem. They can't be distinguished from
the real CPU models they are emulating other than by actually testing.
|  |