Re: [PATCH 3/4] x86: disallow running with 32-bit PTEs to work around erratum

From: Dave Hansen
Date: Wed Jul 06 2016 - 12:03:12 EST


On 07/03/2016 09:20 PM, Hillf Danton wrote:
...
>> When we have 64-bit PTEs (64-bit mode or 32-bit PAE), we were able
>> to move the swap PTE format around to avoid these troublesome bits.
>> But, 32-bit non-PAE is tight on bits. So, disallow it from running
>> on this hardware. I can't imagine anyone wanting to run 32-bit
>> on this hardware, but this is the safe thing to do.
>
> <jawoff>
>
> Isn't this work from Mr. Tlb?

I have no idea what you mean.
>> + if (!err)
>> + err = check_knl_erratum();
>>
>> if (err_flags_ptr)
>> *err_flags_ptr = err ? err_flags : NULL;
>> @@ -185,3 +188,32 @@ int check_cpu(int *cpu_level_ptr, int *r
>>
>> return (cpu.level < req_level || err) ? -1 : 0;
>> }
>> +
>> +int check_knl_erratum(void)
>
> s/knl/xeon_knl/ ?

Nah. I mean we could say xeon_phi_knl, but I don't think it's worth
worrying too much about a function called in one place and commented
heavily.

>> + puts("This 32-bit kernel can not run on this processor due\n"
>> + "to a processor erratum. Use a 64-bit kernel, or PAE.\n\n");
>
> Give processor name to the scared readers please.

Yeah, that's a pretty good idea. I'll be more explicit.