Re: [RFC PATCH v3 0/4] arm64: tlb: add support for TTL field

From: Zhenyu Ye
Date: Tue Mar 24 2020 - 08:42:44 EST


Hi Zenghui,

On 2020/3/24 19:31, Zenghui Yu wrote:
>Hi Zhenyu,
>
>On 2020/3/21 20:16, Zhenyu Ye wrote:
>> --
>> ChangeList:
>> v3:
>> use vma->vm_flags to replace mm->context.flags.
>>
>> v2:
>> build the patch on Marc's NV series[1].
>>
>> v1:
>> add support for TTL field in arm64.
>>
>> --
>> ARMv8.4-TTL provides the TTL field in tlbi instruction to indicate
>> the level of translation table walk holding the leaf entry for the
>> address that is being invalidated. Hardware can use this information
>> to determine if there was a risk of splintering.
>>
>> Marc has provided basic support for ARM64-TTL features on his
>> NV series[1] patches. NV is a large feature, however, only
>> patches 62[2] and 67[3] are need by this patch set.
>> ** You only need read those two patches before review this patch. **
>
>It'd be good if you can put the whole thing into a series, otherwise
>people will have difficulty when reviewing and testing it...
>
>I haven't tracked the previous versions. If Marc is OK to share the
>two patches below [2][3], I'd suggest you to pick them up, add them
>in your series, rebase on top of mainline and resend it.
>
>
>Thanks,
>Zenghui
>

Thanks for your review. I'd take your suggestion and resend a new set
right now.

Thanks,
Zhenyu

>>
>> Some of this patch depends on a feature powered by @Will Deacon
>> two years ago, which tracking the level of page tables in mm_gather.
>> See more in commit a6d60245.
>>
>> [1] git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm64/nv-5.6-rc1
>> [2] https://lore.kernel.org/linux-arm-kernel/20200211174938.27809-63-maz@xxxxxxxxxx/
>> [3] https://lore.kernel.org/linux-arm-kernel/20200211174938.27809-68-maz@xxxxxxxxxx/
>>
>> Zhenyu Ye (4):
>> arm64: Add level-hinted TLB invalidation helper to tlbi_user
>> mm: Add page table level flags to vm_flags
>> arm64: tlb: Use translation level hint in vm_flags
>> mm: Set VM_LEVEL flags in some tlb_flush functions
>>
>> arch/arm64/include/asm/mmu.h | 2 ++
>> arch/arm64/include/asm/tlb.h | 12 +++++++++
>> arch/arm64/include/asm/tlbflush.h | 44 ++++++++++++++++++++++++++-----
>> arch/arm64/mm/hugetlbpage.c | 4 +--
>> arch/arm64/mm/mmu.c | 14 ++++++++++
>> include/asm-generic/pgtable.h | 16 +++++++++--
>> include/linux/mm.h | 10 +++++++
>> include/trace/events/mmflags.h | 15 ++++++++++-
>> mm/huge_memory.c | 8 +++++-
>> 9 files changed, 113 insertions(+), 12 deletions(-)
>>
>