[PATCH v4 6/9] mm/mremap: Use range flush that does TLB and page walk cache flush
Aneesh Kumar K.V
aneesh.kumar at linux.ibm.com
Tue Apr 20 14:17:52 AEST 2021
On 4/20/21 9:17 AM, Michael Ellerman wrote:
> "Aneesh Kumar K.V" <aneesh.kumar at linux.ibm.com> writes:
>> Some architectures do have the concept of page walk cache which need
>> to be flush when updating higher levels of page tables. A fast mremap
>> that involves moving page table pages instead of copying pte entries
>> should flush page walk cache since the old translation cache is no more
>> valid.
>>
>> Add new helper flush_pte_tlb_pwc_range() which invalidates both TLB and
>> page walk cache where TLB entries are mapped with page size PAGE_SIZE.
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
>> ---
>> arch/powerpc/include/asm/book3s/64/tlbflush.h | 11 +++++++++++
>> mm/mremap.c | 15 +++++++++++++--
>> 2 files changed, 24 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush.h b/arch/powerpc/include/asm/book3s/64/tlbflush.h
>> index f9f8a3a264f7..c236b66f490b 100644
>> --- a/arch/powerpc/include/asm/book3s/64/tlbflush.h
>> +++ b/arch/powerpc/include/asm/book3s/64/tlbflush.h
>> @@ -80,6 +80,17 @@ static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma,
>> return flush_hugetlb_tlb_pwc_range(vma, start, end, false);
>> }
>>
>> +#define flush_pte_tlb_pwc_range flush_tlb_pwc_range
>> +static inline void flush_pte_tlb_pwc_range(struct vm_area_struct *vma,
>> + unsigned long start, unsigned long end,
>> + bool also_pwc)
>
> This still uses the also_pwc name, which is a bit inconsistent with the
> previous patch.
>
will fix that.
> But, does it even need to be a parameter? AFAICS you always pass true,
> and pwc=true is sort of implied by the name isn't it?
>
I don't have strong opinion about that. I was wondering having flush_pwc
explicitly called out is a better indication of we are flushing page
walk cache. Will drop that in the next update.
-aneesh
More information about the Linuxppc-dev
mailing list