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

From: Dave Hansen
Date: Thu Nov 30 2017 - 13:53:19 EST


On 11/30/2017 10:48 AM, Andy Lutomirski wrote:
>> __flush_tlb() does a flushing CR3 write that flushes the current PCID.
>> If we need other PCIDs flushed, we have to do it via the
>> tlb_flush_shared_nonglobals() mechanism.
>>
>> Does it matter today in practice? Nope, we never have that situation.
>> But, it also doesn't _hurt_ to have that line there in any way.
> Should it be tlb_flush_shared_nonglobals_if_kernel_and_user_pagetables_are_separate()?

The separate page tables doesn't play into it as far as I can tell. the
important thing is that you have "stuff" in some other *kernel* address
space that you didn't flush.

> The whole idea that we can get away with ambiguous functions like
> __flush_tlb() seems to be much less true with KAISER. I think we
> should maybe start getting rid of overly vague functions like this.

Yeah, making the intent more explicit would be highly welcome.