mbox series

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

Message ID 20200321121621.1600-1-yezhenyu2@huawei.com (mailing list archive)
Headers show
Series arm64: tlb: add support for TTL field | expand

Message

Zhenyu Ye March 21, 2020, 12:16 p.m. UTC
--
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. **

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@kernel.org/
[3] https://lore.kernel.org/linux-arm-kernel/20200211174938.27809-68-maz@kernel.org/

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(-)

Comments

Zenghui Yu March 24, 2020, 11:31 a.m. UTC | #1
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

> 
> 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@kernel.org/
> [3] https://lore.kernel.org/linux-arm-kernel/20200211174938.27809-68-maz@kernel.org/
> 
> 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(-)
>
Zhenyu Ye March 24, 2020, 12:41 p.m. UTC | #2
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@kernel.org/
>> [3] https://lore.kernel.org/linux-arm-kernel/20200211174938.27809-68-maz@kernel.org/
>> 
>> 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(-)
>> 
>