Re: [PATCH 15/24] x86/mm: Allow flushing for future ASID switches

From: Andy Lutomirski
Date: Thu Nov 30 2017 - 10:42:40 EST


On Thu, Nov 30, 2017 at 7:40 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> On Mon, Nov 27, 2017 at 09:16:19PM -0800, Andy Lutomirski wrote:
>> We've gotten away with having a single
>> function for both this long because we've never had PCID on and
>> nonglobal kernel mappings around. So we're busted starting with
>> "x86/mm/kaiser: Disable global pages by default with KAISER", which
>> means that we have a potential corruption issue affecting anyone who
>> tries to bisect the series.
>>
>> Then we need to make the kernel variant do something sane (presumably
>> just call __flush_tlb_all if we have PCID && !PGE).
>
> (We don't support PCID && !PGE)
>
> __flush_tlb_all() if PCID, because it needs to flush the thing from all
> kernel ASIDs, which this patch -- however nasty -- achieves best.
>
>

Brain fart there. What I meant was: the old code was wrong if PCID
was on and the page being flushed wasn't GLOBAL. Which is what KAISER
dies.