Re: [PATCH 09/11] x86/pti: enable global pages for shared areas

From: Dave Hansen
Date: Mon Apr 02 2018 - 16:42:03 EST


On 04/02/2018 10:56 AM, Linus Torvalds wrote:
> On Mon, Apr 2, 2018 at 10:27 AM, Dave Hansen
> <dave.hansen@xxxxxxxxxxxxxxx> wrote:
>> + /*
>> + * The cpu_entry_area is shared between the user and kernel
>> + * page tables. All of its ptes can safely be global.
>> + */
>> + if (boot_cpu_has(X86_FEATURE_PGE))
>> + pte = pte_set_flags(pte, _PAGE_GLOBAL);
> So this is where the quesion of "why is this conditional" is valid.
>
> We could set _PAGE_GLOBAL unconditionally, not bothering with testing
> X86_FEATURE_PGE.

I think we should just keep the check for now. Before this patch set,
on !X86_FEATURE_PGE systems, we cleared _PAGE_GLOBAL in virtually all
places due to masking via __supported_pte_mask.

It is rather harmless either way, but being _consistent_ (by keeping the
check) with all of our PTEs is nice.