Re: [tip:x86/pti] x86/pti: Make sure the user/kernel PTEs match

From: Dave Hansen
Date: Fri Feb 09 2018 - 18:30:09 EST


On 01/03/2018 08:22 AM, tip-bot for Thomas Gleixner wrote:
> --- a/arch/x86/mm/pti.c
> +++ b/arch/x86/mm/pti.c
> @@ -367,7 +367,8 @@ static void __init pti_setup_espfix64(void)
> static void __init pti_clone_entry_text(void)
> {
> pti_clone_pmds((unsigned long) __entry_text_start,
> - (unsigned long) __irqentry_text_end, _PAGE_RW);
> + (unsigned long) __irqentry_text_end,
> + _PAGE_RW | _PAGE_GLOBAL);
> }

We appear to have lost all of our global bits between this and the
cpu_entry_area itself. To make K8 happy, shouldn't we just *set*
_PAGE_GLOBAL universally instead of clearing it universally?

Also, don't we want _PAGE_GLOBAL in the cpu_entry_area.c pte setting? I
think I had this for all the shared user/kernel areas near the end of
the KAISER era, but we appear to have totally nuked it for PTI.